Les objets de la liste doivent avoir toString
mis en œuvre pour eux d'imprimer quelque chose de significatif à l'écran.
Voici un test rapide pour voir les différences:
public class Test {
public class T1 {
public Integer x;
}
public class T2 {
public Integer x;
@Override
public String toString() {
return x.toString();
}
}
public void run() {
T1 t1 = new T1();
t1.x = 5;
System.out.println(t1);
T2 t2 = new T2();
t2.x = 5;
System.out.println(t2);
}
public static void main(String[] args) {
new Test().run();
}
}
Et lorsque cela s'exécute, les résultats de l'imprimé à l'écran sont:
t1 = Test$T1@19821f
t2 = 5
Depuis le T1 ne pas surcharger la méthode toString, son instance t1 imprime comme quelque chose qui n'est pas très utile. D'autre part, T2 remplace toString, nous avons donc contrôler ce qu'il imprime lorsqu'il est utilisé en I/O, et nous voyons quelque chose d'un peu mieux sur l'écran.