2014-01-05 18 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:见编辑回答。 –