私は3つのクラスを持っています。アテンダント、車、ガレージ。 すべてはtoStringメソッドを持っています。 しかし、2つのtoStringメソッドがありますか?
public class Attendant {
private Cars assign;
static ArrayList<Attendant> myAtt = new ArrayList<Attendant>();
public Attendant(int staffNum, String id, boolean available, attNm name, Cars assign) {
this.staffNum = staffNum;
this.id = id;
this.available = available;
this.name = name;
this.assign = assign;
}
public String toString() {
return "Attendant [staffNum=" + staffNum + ", id=" + id + ", available=" + available + ", name=" + name
+ ", assign=" + assign + "]";
}
}
は車:
public class Cars {
private String carID;
private String plateNum;
private static String position;
private static Attendant assignedTo;
private long currTime;
static String[] tempArray2 = new String[Garage.getCarsCapacity()];
@Override
public String toString() {
return "Car:" + plateNum + " ID:" + carID + " Position:" + position + " Assigned to:" + assignedTo.getId()
+ "(" + assignedTo.getName() + ")" + " Parked at:" + convert(currTime);
}
}
だから私の2のtoStringプリントOK。 問題は、私がattendantオブジェクトを変更してパラメータを設定することです。すべてのアテンダントを印刷すると、toStringを使用して割り当て部分を印刷するために、toStringを出力します。 アテンダントを印刷するときにcarIDだけを印刷する必要があります。 私はそれをそのまま使用するため、車をtoStringに変更できません。 私は、私のJavaクラッシュをassign.getCarIDを使用する場合。 アテンダントの車のパラメータがnullなのでと思う。 どうすればいいですか?
シモンズ:彼らはあなたが単にあなたのアテンダントのtoStringメソッドを変更する必要があり、それに対応するオブジェクト
聞かないでください[オブジェクトを格納するArrayListをToStringメソッド]のassign.getCarID –
可能な複製(http://stackoverflow.com/questions/39596460/tostring-an-arraylist-containing-object) – xenteros
のヌルチェックを追加します。同じ質問を2度。私はもう別のトピックであなたの質問に答えました。不明な点がある場合は、自由にコメントを追加してください。 – xenteros