Java Object和toString()属性并创建2个不同的结果

时间:2018-07-31 17:28:56

标签: java object

我有2个对象:

  1. ObjectA
  2. ObjectB

当我将ObjectA转换为字符串(ObjectA.toString())时,它看起来像这样:

projectA.test.Object@e6db18d

现在有了ObjectB,当我将其转换为字符串(ObjectB.toString())时,它看起来像这样:

ObjectB {color=StringProperty [value: blue], car=StringProperty [value: bmw]}

现在我的问题是为什么一个人提出一串数字和字母,而另一个人提出一个清单?如何使我所有的对象都像类似于ObjectB的列表一样显示,因为这样更易于阅读?

1 个答案:

答案 0 :(得分:-1)

对象的字符串值是通过toString()方法获得的。因此,要更改对象的字符串表示形式,必须在类中重写toString()方法:

public class SomeClass {

    @Override
    public String toString() {
        return "Custom string";
    }

}

ObjectA的字符串表示形式是任何对象的默认字符串表示形式,其中将打印该对象的类的名称,后跟@,最后是该对象的哈希码。默认实现为:

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}