我怎样才能在课堂上支持println?

时间:2014-12-25 13:20:35

标签: java println

我自己制作的课程需要支持什么才能让println()打印出来?例如,我有:

public class A {
...
}

A必须使用哪些方法才能使此代码有效?也许是这样的:

public static void main() {
    A a = new A();
    System.out.println(a);
}

我猜测toString()方法必须重载。我对吗?这够了吗?

3 个答案:

答案 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()方法。从中返回的所有内容都将被打印出来。

相关问题