0

我需要一些帮助。如果用户从已经存在的基础设施列表中给出正确的名称并使用里面的值,我试图让用户创建基础设施。但是后来我得到了这个错误:线程“main”中的异常 java.lang.NullPointerException TownObject 是内部具有基础设施的抽象类。什么可能导致运行时错误?提前致谢。

townObject commtowers = new infrastructure("telekom", "communication towers", 50);
townObject busstop = new infrastructure("litatrek", "bus stop", 30);

    townObject[][] ton = new townObject[20][20];

    String iname;

    System.out.println("Enter infrastructure name : ");            
    iname = sc.nextLine();
    sc.nextLine();

    for (int i=0; i < rows; i++){
        for (int j=0; j < columns; j++){
        ****if (iname.equalsIgnoreCase(ton[i][j].getName())
            {
                ton[x][y] = new infrastructure(infName, infType, infCost);
            }
            else
            {
                System.out.println("Infrastructure is not found.");
            }
        }
    }
4

1 回答 1

0

ObjectsJava 中的默认值为null. 这也适用于Object数组的元素。

当数组ton本身被实例化时,它的各个元素仍然null需要分配。您需要在对它们调用任何操作之前实例化数组的元素:

for (int i=0; i < ton.length; i++) {
    for (int j=0; j < ton[i].length; j++) {
        ton[i][j] = new townObject();
        ton[i][j].setName(...);
    }
}
于 2013-05-12T20:57:27.313 回答