Я пытаюсь добавить имя и длину воспроизведения для программы управления театром. Я хочу иметь возможность добавлять новые пьесы, которые будут показаны в театре. В настоящее время я следующее для класса Play и его подклассов LocalPlay и ForeignPlayNullPointerException при добавлении нового объекта в массив
public class Play {
public String name;
public double length;
public Play(String name, double length){
this.name = name;
this.length = length;
}
public void printPlayList(){
System.out.print("name = " + this.name);
System.out.print("length - " + this.length);
}
}
class ForeignPlay extends Play{
public ForeignPlay(String name, double length){
super(name, length);
}
}
class LocalPlay extends Play{
public LocalPlay(String name, double length){
super(name, length);
}
}
Для моего администратора класса (класса я хочу использовать функцию addPlay внутри), я пытаюсь добавить новые объекты к классу пропускания String и double. Это мой код:
public class Admin extends User{
private Play [] play;
private int size = 0;
public void addForeignPlay(String name, double length){
this.play[size] = new ForeignPlay(name,length);
this.size++;
}
public void addLocalPlay(String name, double length){
this.play[size] = new LocalPlay(name,length);
this.size++;
}
public void playDetails(){
for(int i = 0; i < this.size; i++)
this.play[i].printPlayList();
}
public static void main (String[] args){
Admin testAdmin = new Admin();
testAdmin.addLocalPlay("test", 125);
testAdmin.playDetails();
}
}
При попытке запуска этого я бы ожидать, чтобы иметь выход «Test» и 125,0. Тем не менее, я получаю сообщение об ошибке:
Исключение в потоке "основной" java.lang.NullPointerException на Admin.addLocalPlay (Admin.java:18) на Admin.main (Admin.java:33)
Спасибо любезно за любую помощь вы можете предоставить
Вы не инициализирующий 'play' массив в любом месте, так что нулевая .. –
Возможный дубликат [Что такое исключение Null Pointer и как его исправить?] (http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) –