У меня есть такая реализация
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());
}
Итак, мой вопрос и замешательство в том, что когда я переопределяю toString () в моем требуемом классе, как все это работает вместе, чтобы распечатайте список элементов, упомянутый в методе Overridden toString ().
Надеюсь, я достаточно ясно сформулировал свой вопрос. Спасибо.