Java对象数组可以将元素初始化为非空值吗?

时间:2011-10-07 01:59:52

标签: java

我是Java的新手,我很难搞清楚如何修复这个一直困扰我的空指针异常。

我知道问题发生在哪里,我知道空指针异常是什么,但我不知道我将如何使我的程序工作。

以下是发生问题的代码段:

public static void main(String[] args) {
 Scanner input = new Scanner(System.in);

    Account[] atm = new Account[10];

    for (int i = 0; i < 10; i++){
        atm[i].setId(i);
        atm[i].setBalance(100.00);
    }

就像我说的,我知道它发生的原因是atm []中的对象为null,但我不确定如何解决问题。

我确定这是一个愚蠢的错误,因为这些是我经常犯的错误,但是你们可以给予的任何帮助都会让我的一天。

谢谢!

1 个答案:

答案 0 :(得分:8)

你的整个数组都是空的!请记住,数组永远不会在java中自动初始化,除非它们是int,float,double或booleans的数组。

Scanner input = new Scanner//System.in.Scanner;

Account[] atm = new Account[10];

for (int i = 0; i < 10; i++){
    **atm[i] = new Account();**
    atm[i].setId(i);
    atm[i].setBalance(100.00);
}

当您声明包含对象的数组时,请将其读作“我正在创建一个包含'x'对象的数组。” (正确),然后继续实例化那些对象

......而不是......

“我正在创建一个包含'x'对象的数组。” (不正确)因为还没有任何对象,因为它们尚未创建。