我正在尝试创建包含array对象和RaceBoat对象的船SailBoat。目前我有这个:

Boat[] boats;

totalBoatCount = args.length;

for (int i = 0 ; i < totalBoatCount ; i++)
    {
       char firstChar = boatNames[i].charAt(0);

        if (Boat.isItRaceBoat(firstChar))
        {
           boats[i] = new RaceBoat(boatNames[i]);
        }
        else
        {
            boats[i] = new SailBoat(boatNames[i]);
        }
    }


每次创建新的SailBoat或RaceBoat时,都会得到一个java.lang.NullPointerException。我应该如何用短语来创建这个数组?

最佳答案

Boat[] boats;


只是声明一个Boat []变量。您还需要使用实例化它

Boat[] boats = new Boat[args.length];


'='之前的那部分代码指出,boat是一个包含Boat实例的数组。它后面的部分实际上构造了这个空数组对象(能够包含Boats实例的args.length个数字)并将其分配给boats变量。

09-05 09:39