我的程序有问题。目前,我正在做一个账单账户系统。基本上,我已经启动并运行了大部分系统。作为一个特性,用户可以通过输入账号来执行操作,而不是让用户记住他们在数组中的位置。因此,换句话说,他们将被提示输入一个帐号,并且任何操作都归因于该帐号。
这是我到目前为止的代码:
intEntry = input.nextInt();
for (count = 0; count <= ACCLIMIT; count++)
{
if (intEntry == NewAccount[count].getAccRefNo() )
{
intSelectedEntry = count;
}//end of if statement
else
{
System.out.println("Invalid ID!");
}//end of else statement
}//end of loop
System.out.println("*******Please enter the amount you wish to deposit*******") ;
valDeposit = getBalanceValidation();
parDepositAmount = Double.valueOf(valDeposit).doubleValue ();
NewAccount[intSelectedEntry].deposit(parDepositAmount);
当我运行它时,一旦我输入ID号intEntry
,它就崩溃了。它说错误在if语句条件的那一行,如果有帮助的话。请注意,我对Java非常陌生,我非常感谢以简单的方式解释这个帮助。(谢谢!)
错误信息如下:
Exception in thread "main" java.lang.NullPointerException
at pkgGasAccount.UsingBusinessAccount.main(UsingBusinessAccount.java:106)
Java Result: 1
第106行是if语句(条件)的第一行
NewAccount[count]
is null
。
您应该检查NewAccount[count] != null
:
if (NewAccount[count]!= null && intEntry == NewAccount[count].getAccRefNo() )
但是如果你不期望那里的null
值,我建议你检查一下为什么会发生这种情况
NullPointerException正在被抛出,因此我可以说您的代码正在尝试访问未定义的数组或指向空值(默认值)
由于只有一个数组NewAccount[],因此我将检查相同的声明