我正在尝试创建包含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变量。