我自己制作的课程需要支持什么才能让println()
打印出来?例如,我有:
public class A {
...
}
类A
必须使用哪些方法才能使此代码有效?也许是这样的:
public static void main() {
A a = new A();
System.out.println(a);
}
我猜测toString()
方法必须重载。我对吗?这够了吗?
答案 0 :(得分:8)
您可以使用System.out.println(Object)
打印任何对象。这个重载版本的println将打印出对象的toString
表示。如果要自定义要打印的内容,则必须覆盖Object#toString()
方法,例如:
public class A {
private String foo;
@Override
public String toString() {
// When you print out instance of A, value of its foo
// field will be printed out
return foo;
}
}
如果不覆盖Object#toString()
方法,将使用Object
类的默认实现,它具有以下形式(类名和实例哈希码的十六进制表示):
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
加分:如果您需要从多个字段创建toString()
实施,可以使用工具来简化。例如来自Commons Lang的ToStringBuilder
。或者某些Java IDE(如IntelliJ IDEA)甚至可以根据类的字段为您生成toString
。
答案 1 :(得分:2)
您需要为此提供toString()
方法的覆盖:
public class A {
@Override
public String toString() {
return "A";
}
}
该方法返回对象的字符串表示形式。通常,toString方法返回一个"文本表示"的字符串。这个对象。
答案 2 :(得分:0)
您需要实施toString()
方法。从中返回的所有内容都将被打印出来。