2016-09-20 7 views
0

私は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メソッドを変更する必要があり、それに対応するオブジェクト

+0

聞かないでください[オブジェクトを格納するArrayListをToStringメソッド]のassign.getCarID –

+0

可能な複製(http://stackoverflow.com/questions/39596460/tostring-an-arraylist-containing-object) – xenteros

+1

のヌルチェックを追加します。同じ質問を2度。私はもう別のトピックであなたの質問に答えました。不明な点がある場合は、自由にコメントを追加してください。 – xenteros

答えて

2

のすべての印刷のArrayListです。今は単純すぎるので、assign変数の内容を出力してCarsのtoStringを出力し、表示する特定のCarsデータを出力するようにしてください。これは通常、Carsからgetterメソッドを呼び出すことを意味します。あなたの車クラスは壊れているように見えますが、それは1台の車の情報と多くの車の情報を保持しているからです。これはなぜそれほど明確ではないのですか?

関連する問題