2015-09-25 64 views
1

的阵列我有以下测试类NullPointerException异常的对象

public class Driver 
{ 
    public static void main(String [] args) 
     { 
      BankAccount[] b1 = {new BankAccount(200), new BankAccount(300), new BankAccount(250), new BankAccount(300), new BankAccount(200)}; 
       BankAccountGroup bag = new BankAccountGroup(b1);      

     } 

而且BankAccountGroup:

public class BankAccountGroup 
{ 
private BankAccount bank[]; 
public BankAccountGroup(BankAccount[]b) 
{ 
for(int i =0; i<5;i++) 
{ 
bank[i] = b[i]; 
} 
} 

这些都只是整个代码的片段。我得到这两行的nullpointerexception: - bank [i] = b [i]; - BankAccountGroup bag = new BankAccountGroup(b1); 请帮忙

回答

1

当您在BankAccountGroup类中声明bank []时,它看起来像忘了给它一个长度。因此,当你在for循环中调用bank [i]时,i = 0之后的任何内容都可能会给你一个错误。

private BankAccount[] bank = new BankAccount[5]; 
+0

非常感谢你 – user3071135

+0

你能把这个标记为答案吗? IMTRYINGTOGETSOMEPOINTS。 – Umibozu

0

您还没有初始化数组银行。你也不应该认为这个论点会有5个元素的长度。我会重写类如下:

public class BankAccountGroup 
{ 
    private BankAccount bank[]; 

    public BankAccountGroup(BankAccount[]b) 
    { 
     if (b != null) 
     { 
      bank = new BankAccount[b.length]; 

      for(int i=0; i<b.length;i++) 
      { 
       bank[i] = b[i]; 
      } 
     } 
    } 
} 
1

要么首先初始化您的数组(坏)。

或从您传递构造函数的值中指定它。

private BankAccount[] bank; 
public BankAccountGroup(BankAccount []){ 
     bank = b; 
}