Почему выходной? : Сфера 0Почему этот Java-код неявно вызывает метод toString()?
Как-то это вызывает метод toString() неявно? Как это работает ?
class BerylliumSphere {
private static long counter = 0;
private final long id = counter++;
public String toString() {
return "Sphere " + id;
}
}
public class Test {
public static void main (String[] args) {
BerylliumSphere spheres = new BerylliumSphere();
System.out.println(spheres);
}
}
// output: Sphere 0
Там нет никакой магии, и это не «Java», которая делает это, но 'println' метод. Вы можете реализовать такой метод самостоятельно. http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/io/PrintStream.java#820 –
Передача объекта в println() всегда дает представление toString – Kahn
Это не «неявно», оно «явно», просто посмотрите, что делает 'println'. – Tom