我有这种实现方式
static class InnerClassStudent{
String name;
int age;
InnerClassStudent(String name,int age){
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "name :" + name + "," + "age: " + age;
}
}
然后创建,添加并打印列表中的项目。
List<InnerClassStudent> listOfInnerClassStudent = new ArrayList<InnerClassStudent>();
//add items
//print items
System.out.println("InnerClasslist : " + listOfInnerClassStudent.toString());
然后输出是
InnerClasslist : [name :Mr.B,age: 21, name :Mr.Y,age: 19, name :Mr.C,age: 30]
所以,在这里,我对toString()方法有些困惑。我正在调用list.toString(),这意味着toString()需要是List类或其父类内部的函数。
因此,它的实际实现在Object.java
中 public String toString() {
return this.getClass().getName() + "@" + Integer.toHexString(this.hashCode());
}
所以,我的问题和困惑是,当我Override所需类中的toString()时,它们如何一起工作以打印Overridden toString()中相应提及的项目列表方法。
我希望我已经清楚地阐明了我的问题。谢谢。
[ArrayList
具有从toString
继承的toString
自己的实现,
AbstractCollection