2014-01-05 23 views
1

我有以下Team類:無法打印在指定索引的內容在一個ArrayList對象

和客戶端(測試)類,我試圖在第2位打印元素(使用getIndex()方法例如)在ArrayList我已經如上所定義:

public class TestTeam { 

public static void main(String[] args){ 


    Team teamList = new Team();  
    System.out.print(teamList.getIndex(2)); 
} 
} 

這以上是給我的位置:[email protected]。我嘗試過使用:

System.out.print((teamList.getIndex(2)).toString()); 

但結果相同。當我調試它時,teamList.getIndex(2)的值似乎爲空。我無法看到我在Team類中做了什麼錯誤的方法,任何提示/幫助表示讚賞。

+0

_「以上是給我的位置:Team @ 45a1472d」_您需要覆蓋'Team'類中的對象類遺漏的'toString()'方法。 –

回答

3

您必須在Team類中包含toString()方法。否則它會調用Object#toString()方法。

現在它正在打印ObjecttoString()方法的默認實現,該方法的實現方式是給出對象的哈希代碼的無符號十六進制表示形式。

public class Team { 

@Ovveride 
public String toString() { 
    //build a string for team class to print and return here. 
} 


} 
2

的主要問題是,你的程序結構熄滅:團隊不應該包含ArrayList<Team>。該ArrayList應駐留在另一個類中,比如聯盟或TeamList類。使用當前代碼可能會遇到StackOverflowException。


編輯
你問:

在你的建議應團隊列表/ ArrayList類是團隊的一個子類?如果我現在保持這種風險,你能成爲更具體的風險嗎?

不,它絕對不應該是一個子類。從邏輯上考慮:棒球聯盟不是一支專門的棒球隊,是嗎?不,所以你的想法到子類不符合「是 - 是」子類的規則。它應該是它自己的類,它有自己的非靜態方法和字段。

+0

我對OOP並不是很有經驗,我最初在一個單獨的課程中擁有團隊名單,但後來改變了它,只是爲了讓團隊中的所有團隊相關元素。在你的建議中,TeamList/ArrayList類應該是Team的一個子類嗎?如果我現在保持這種風險,你能成爲更具體的風險嗎?謝謝 –

+0

@AlinaGabrielaSingeorzan:見編輯回答。 –