Java 我不能这样做吗?获得';例外情况';错误
获取以下错误:“.Exception in thread”main“java.lang.NullPointerException "Java 我不能这样做吗?获得';例外情况';错误,java,error-handling,Java,Error Handling,获取以下错误:“.Exception in thread”main“java.lang.NullPointerException " //创建10个帐户 账户[]账户阵列=新账户[10]; //数据字段 双atmVal; //将每个帐户的离散id和初始余额设置为100 对于(int i=0;i当您创建一个对象数组时,您得到的只是一个大小正确但充满nulls的数组。您需要通过说出new Account()来创建每个对象并将其分配给数组。您甚至可以在同一个循环中执行此操作。当您创建对象数组时,您得到
//创建10个帐户
账户[]账户阵列=新账户[10];
//数据字段
双atmVal;
//将每个帐户的离散id和初始余额设置为100
对于(int i=0;i当您创建一个对象数组时,您得到的只是一个大小正确但充满null
s的数组。您需要通过说出new Account()来创建每个对象
并将其分配给数组。您甚至可以在同一个循环中执行此操作。当您创建对象数组时,您得到的只是一个大小正确但充满null
s的数组。您需要通过说new Account()来创建每个对象
并将其分配给数组。您甚至可以在同一个循环中执行此操作。当您创建对象数组时,您得到的只是一个大小正确但充满null
s的数组。您需要通过说new Account()来创建每个对象
并将其分配给数组。您甚至可以在同一个循环中执行此操作。当您创建对象数组时,您得到的只是一个大小正确但充满null
s的数组。您需要通过说new Account()来创建每个对象
并将其分配给数组。您甚至可以在同一循环中执行此操作。您的数组已初始化为包含10个帐户,但它们仍然为空。将循环更改为:
for (int i=0;i<10;i++){
ArrArray[i] = new Account(); // whatever constructor parameters are needed
AccArray[i].setId(i); // this line is specified in the error
AccArray[i].setBalance(100);
}
for(int i=0;i您的数组已初始化为包含10个帐户,但它们仍然为空。将循环更改为:
for (int i=0;i<10;i++){
ArrArray[i] = new Account(); // whatever constructor parameters are needed
AccArray[i].setId(i); // this line is specified in the error
AccArray[i].setBalance(100);
}
for(int i=0;i您的数组已初始化为包含10个帐户,但它们仍然为空。将循环更改为:
for (int i=0;i<10;i++){
ArrArray[i] = new Account(); // whatever constructor parameters are needed
AccArray[i].setId(i); // this line is specified in the error
AccArray[i].setBalance(100);
}
for(int i=0;i您的数组已初始化为包含10个帐户,但它们仍然为空。将循环更改为:
for (int i=0;i<10;i++){
ArrArray[i] = new Account(); // whatever constructor parameters are needed
AccArray[i].setId(i); // this line is specified in the error
AccArray[i].setBalance(100);
}
对于(int i=0;i您需要实例化一个帐户
,假设您有一个空的构造函数帐户
,您会使用如下内容-
for (int i=0;i<10;i++) {
AccArray[i] = new Account(); // <-- like so.
AccArray[i].setId(i); // this line is specified in the error
AccArray[i].setBalance(100);
}
对于(int i=0;i您需要实例化一个帐户
,假设您有一个空的构造函数帐户
,您会使用如下内容-
for (int i=0;i<10;i++) {
AccArray[i] = new Account(); // <-- like so.
AccArray[i].setId(i); // this line is specified in the error
AccArray[i].setBalance(100);
}
对于(int i=0;i您需要实例化一个帐户
,假设您有一个空的构造函数帐户
,您会使用如下内容-
for (int i=0;i<10;i++) {
AccArray[i] = new Account(); // <-- like so.
AccArray[i].setId(i); // this line is specified in the error
AccArray[i].setBalance(100);
}
对于(int i=0;i您需要实例化一个帐户
,假设您有一个空的构造函数帐户
,您会使用如下内容-
for (int i=0;i<10;i++) {
AccArray[i] = new Account(); // <-- like so.
AccArray[i].setId(i); // this line is specified in the error
AccArray[i].setBalance(100);
}
for(int i=0;i正如其他人指出的那样,创建一个新的帐户数组实际上并不会创建任何帐户;您必须自己使用new
。Java 8为您提供了一个很好的方法:
Account[] accounts = new Account[10];
Arrays.setAll(accounts, i -> new Account());
setAll
的第二个参数是一个lambda表达式,它接受一个整数参数i
(正在设置的元素的索引),并将数组元素设置为new Account()
。表达式实际上不使用索引,但可以使用表达式(或块)如果你愿意的话,它确实会使用i
。正如其他人所指出的,创建一个新的帐户数组实际上不会创建任何帐户;你必须自己使用新的。Java 8为你提供了一个很好的方法:
Account[] accounts = new Account[10];
Arrays.setAll(accounts, i -> new Account());
setAll
的第二个参数是一个lambda表达式,它接受一个整数参数i
(正在设置的元素的索引),并将数组元素设置为new Account()
。表达式实际上不使用索引,但可以使用表达式(或块)如果你愿意的话,它确实会使用i
。正如其他人所指出的,创建一个新的帐户数组实际上不会创建任何帐户;你必须自己使用新的。Java 8为你提供了一个很好的方法:
Account[] accounts = new Account[10];
Arrays.setAll(accounts, i -> new Account());
setAll
的第二个参数是一个lambda表达式,它接受一个整数参数i
(正在设置的元素的索引),并将数组元素设置为new Account()
。表达式实际上不使用索引,但可以使用表达式(或块)如果你愿意的话,它确实会使用i
。正如其他人所指出的,创建一个新的帐户数组实际上不会创建任何帐户;你必须自己使用新的。Java 8为你提供了一个很好的方法:
Account[] accounts = new Account[10];
Arrays.setAll(accounts, i -> new Account());
setAll
的第二个参数是一个lambda表达式,它接受一个整数参数i
(正在设置的元素的索引),并将数组元素设置为new Account()
。表达式实际上不使用索引,但如果需要,可以使用使用使用i
的表达式(或块)