【发布时间】:2022-01-19 21:55:05
【问题描述】:
当我尝试将相同的字符串两次添加到 ArrayList 时,我得到一个 NullPointerException 但不知道为什么。
import java.util.ArrayList;
public class BankOne {
private String name;
private ArrayList<BranchOne> branches;
public BankOne(String name) {
this.name = name;
this.branches = new ArrayList<BranchOne>();
}
public boolean addBranch(String branchName) {
if(findBranch(branchName) == null) { //Checking to see if branch exists already.
this.branches.add(findBranch(branchName));
System.out.println(branchName + " has been added to the list");
return true;
} else {
return false;
}
}
private BranchOne findBranch(String branchName) {
for(int counterOne = 0; counterOne < this.branches.size(); counterOne++) {
BranchOne branch = branches.get(counterOne);
if (branch.getName().equals(branchName)) {
System.out.println(branch.getName() + " exists");
return branch;
}
}
return null;
}
public class BranchOne {
private String name;
private ArrayList<CustomerOne> customers;
public BranchOne(String name) {
this.name = name;
this.customers = new ArrayList<CustomerOne>();
}
public String getName() {
return name;
}
public ArrayList<CustomerOne> getCustomers() {
return customers;
}
}
【问题讨论】:
-
您应该包含一个堆栈跟踪,它会告诉您发生 NPE 的确切行,并指出代码示例中的行。
-
同时分享主代码,看看你在运行代码时使用了哪些值
-
this.branches.add(findBranch(branchName))— 您将 null 放入列表中。当您假设列表中的元素是对象时,这将导致 NPE。
标签: java arraylist nullpointerexception