toString() を上書きした後、オブジェクトを出力する際に問題が発生します。toString() を上書きしなくても、エラーなしでオブジェクト参照を出力できます。ただし、 toString() メソッドを上書きしようとすると、一部の出力 (30 個の出力のうち 10 個まで) しか出力できませんが、他の出力ではエラーが発生します。
エラーは次のとおりです。
Exception in thread "main" java.lang.NullPointerException
at Airline.toString(AirlineMain.java:277)
at java.lang.String.valueOf(String.java:2902)
at java.io.PrintStream.println(PrintStream.java:821)
at AirlineMain.main(AirlineMain.java:432)
基本的に、「航空会社」という名前のクラスがあり、オブジェクトが作成されてに格納されていArrayList<Airline>
ます。
Airline クラスのコンストラクター:
public Airline(String fromCity, String toCity, SGTime departTime,
int arriveDay, SGTime arriveTime, int cost) {
this.fromCity = fromCity;
this.toCity = toCity;
this.departTime = departTime;
this.arriveDay = arriveDay;
this.arriveTime = arriveTime;
this.cost = cost;
}
SGTime コンストラクター:
public SGTime(int hour, int min) {
this.hour = hour;
this.min = min;
}
toString() の私の上書き:
public String toString() {
return getFromCity() +" "+ getToCity()+" "+getDepartTime().getHour()+":"+getDepartTime().getMin()+" "+getArriveDay()+" "+getArriveTime().getHour()+":"+getArriveTime().getMin()+" "+getCost();
}
すべてのインスタンス属性には、アクセサーが定義されています。例:
public String getFromCity (){
return fromCity;
}
ご指導いただきありがとうございます。