2013-03-04 78 views
0

我创建了一个类,其对象是将帐号与一组帐号进行比较,并调用返回数字是否有效的方法。我收到的编译器错误:在program07.AccountVal线程 “main” 显示java.lang.NullPointerException 异常(AccountVal.java:12) 在program07.Program07.main(Program07.java:18)创建一个使用数组的自定义类

这里是我的类

package program07; 


public class AccountVal 
{ 
    private String[] accountNums; 
    private String newAccount; 

    public AccountVal() 
    { 
     accountNums[0] = "5658845"; 
     accountNums[1] = "8080152"; 
     accountNums[2] = "1005231"; 
     accountNums[3] = "4520125"; 
     accountNums[4] = "4562555"; 
     accountNums[5] = "6545231"; 
     accountNums[6] = "7895122"; 
     accountNums[7] = "5552012"; 
     accountNums[8] = "3852085";    
     accountNums[9] = "8777541"; 
     accountNums[10] = "5050552"; 
     accountNums[11] = "7576651"; 
     accountNums[12] = "8451277"; 
     accountNums[13] = "7825877"; 
     accountNums[14] = "7881200"; 
     accountNums[15] = "1302850"; 
     accountNums[16] = "1250255"; 
     accountNums[17] = "4581002"; 
     newAccount = ""; 
    } 

    public void setAccountNums(String[] acc) 
    { 
     accountNums = acc; 
    } 

    public void setNewAccount(String newAcc) 
    { 
     newAccount = newAcc; 
    } 

    public String[] getAccountNums() 
    { 
     return accountNums; 
    } 

    public String getNewAccount() 
    { 
     return newAccount; 
    } 

    public boolean AccountValidation(String newAccount) 
    { 
     boolean test = false; 

     for (int i = 0; i < 18; i++) 
     { 
      if(newAccount == accountNums[i]) 
      { 
       test = true; 
      } 
     } 
     return test; 
    } 
} 

错误是指从程序中的行,当我宣布对象:

AccountVal test = new AccountVal(); 

任何帮助,将不胜感激。 谢谢!

回答

2

NPE发生在这条线

accountNums[0] = "5658845"; 

作为String阵列accountNums尚未被初始化。你可以这样做:

private String[] accountNums = new String[18]; 

或者,而不是使用数组大小​​&使用索引,你可以声明你的数组:

private String[] accountNums = { "5658845", "8080152", ... }; 
0

你永远不会初始化accountNums阵列。您需要说:

private String[] accountNums = new String[18]; 
相关问题