-->

我怎样才能在一个类支持调用println?我怎样才能在一个类支持调用println?(How can

2019-05-12 09:44发布

什么是我自己做的类需要以支持println()来打印呢? 例如,我有:

public class A {
...
}

应类什么方法A不得不作出此代码的工作? 也许是这样的:

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

我有一个猜测, toString()方法必须被重载。 我对吗? 这够了吗?

Answer 1:

您可以打印使用任何对象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()来自多个领域的实施,有工具,使其更容易。 例如ToStringBuilder从下议院郎。 或者一些的Java IDE像IntelliJ IDEA的甚至提供生成toString基于类的田地给你。



Answer 2:

您需要提供的覆盖toString()这个方法:

public class A {
    @Override
    public String toString() {
        return "A";
    }
}

该方法返回该对象的字符串表示。 通常,toString方法返回一个字符串,“文本方式表示”该对象。



Answer 3:

你需要实现toString()方法。 你从它返回一切都将被打印出来。



文章来源: How can I support println in a class?
标签: java println