Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建数组时发生Java空指针异常_Java - Fatal编程技术网

创建数组时发生Java空指针异常

创建数组时发生Java空指针异常,java,Java,我正在尝试创建一个包含赛艇对象和帆船对象的船只阵列。目前我有: Boat[] boats; totalBoatCount = args.length; for (int i = 0 ; i < totalBoatCount ; i++) { char firstChar = boatNames[i].charAt(0); if (Boat.isItRaceBoat(firstChar)) { boats[i

我正在尝试创建一个包含赛艇对象和帆船对象的船只阵列。目前我有:

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]);
        }
    }
每次我创建一艘新的帆船或赛艇时,我都会得到一个java.lang.NullPointerException。我应该如何用这个短语来创建这个数组

Boat[] boats;
只声明一个Boat[]变量。您还需要使用

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

“=”前面的那一行表示boats是一个包含Boat实例的数组。实际构造此空数组对象后的部分,该对象能够包含args.length BOOT实例数并将其分配给BOOTS变量。

BOOT[]BOOTS必须在分配BOOTS[i]=新的RaceboatBoatName[i]之前进行初始化

数组未初始化,这意味着它为空

Boat[]必须初始化Boat

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

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

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

此错误与多态性无关。