Java 对象数组上的NullPointerException

Java 对象数组上的NullPointerException,java,arrays,nullpointerexception,polymorphism,Java,Arrays,Nullpointerexception,Polymorphism,我有一个bankaccount超类和从中扩展的两个子类,支票和储蓄。我想创建一个bankaccount数组,但每次我引用它时,它都会抛出一个NullPointerException。为什么要这样做?请帮我把这件事说清楚 public void newAccount() throws IOException { BufferedReader br; br = new BufferedReader(new InputStreamReader(System.in)); Syst

我有一个bankaccount超类和从中扩展的两个子类,支票和储蓄。我想创建一个bankaccount数组,但每次我引用它时,它都会抛出一个NullPointerException。为什么要这样做?请帮我把这件事说清楚

public void newAccount() throws IOException {
    BufferedReader br;
    br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Please create an account id:");
    readid = br.readLine();

    for (int i = 0; i < baArray.length; i++) {
        baArray[i]=new Bankaccount();
        if (baArray[1]==null) {
            System.out.println("its null!");
        }
    }
}
public void newAccount()引发IOException{
缓冲剂;
br=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“请创建帐户id:”);
readid=br.readLine();
对于(int i=0;i
您有
NullPointException
,因为您每次输入
for
cicle的
,并试图访问
null Bankaccount()的
1
项时,都在初始化
beArray
数组的第一个元素是0。 将中的
1
更改为
i

if (baArray[1]==null){
您将拥有一个充满
null BankAccount()的数组

顺便问一下,你在哪里初始化beArray

您在哪里初始化
baArray
?当您检查
if(baArray[1]==null)
时,for循环刚刚创建了
baArray[0]
,因此
baArray[1]
仍然为null。将复选框移到for循环的结束
}
后面。