【发布时间】:2014-05-05 08:35:18
【问题描述】:
如果toString 没有定义,那么Java 会打印带有一些散列的类名。如果定义了toString,如何实现这个功能?
package tests.java.lang;
public class Try_ToString {
public static class MyClass {
protected int value;
public MyClass(int value) {
this.value = value;
}
}
public static class MyClass2 extends MyClass {
public MyClass2(int value) {
super(value);
}
@Override
public String toString() {
return String.valueOf(value);
}
}
public static void main(String[] args) {
MyClass a = new MyClass(12);
MyClass b = new MyClass2(12);
System.out.println("a = " + a.toString());
System.out.println("b = " + b.toString());
}
}
【问题讨论】:
-
我不能接受没有没有反思的简单解决方案,但我找不到它:(
-
在general case 中没有直接的方法可以做到这一点,但对于
tostring和Object的具体情况,下面的答案会有所帮助。 -
@DmitryBychenko 如果超类也实现了 toString...
-
事实上,我没有看到任何合理可用的解决方案,即使有反射......