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

标签 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[] 中的对象为空,但我不确定如何解决这个问题。

我敢肯定这是个愚蠢的错误,因为这些是我经常犯的错误,但是你们能提供的任何帮助都会让我开心。

谢谢!

最佳答案

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

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’个对象的数组。” (不正确)因为那里还没有任何对象,因为它们还没有被创建。

关于java - Java 对象数组可以将元素初始化为非空值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7682373/

相关文章:

Java Android LiveData 调用依赖于其他 LiveData 的 Room 查询

java - 无法使用 Hibernate JPA 更新嵌套实体

java - 项目中突然出现的奇怪错误

java - 以 int 方法返回 'default' 传递给 switch

java - 如何从 Grails 中的 Http 响应获取 boolean 值

java - 在 Eclipse 中我使用 JFrame 但没有出现窗口

java - Elasticsearch5.x flink 连接器中的 NoSuchMethodError

java - JTable 单元格内的 JComboBox

java - 返回 OkHttp 异步结果有问题

java - JAXB 解码列表 Java 6 不工作,Java 7 工作