实现 toString() 方法

要轻松实现对象的 toString 方法,可以使用 ToStringBuilder 类。

选择字段:

@Override
public String toString() {

    ToStringBuilder builder = new ToStringBuilder(this);
    builder.append(field1);
    builder.append(field2);
    builder.append(field3);
    
    return builder.toString();
}

示例结果:

ar.com.jonat.lang.MyClass@dd7123[<null>,0,false]

明确给出字段的名称:

@Override
public String toString() {

    ToStringBuilder builder = new ToStringBuilder(this);
    builder.append("field1",field1);
    builder.append("field2",field2);
    builder.append("field3",field3);
    
    return builder.toString();
}

示例结果:

ar.com.jonat.lang.MyClass@dd7404[field1=<null>,field2=0,field3=false]

你可以通过参数更改样式:

@Override
public String toString() {

    ToStringBuilder builder = new ToStringBuilder(this,
            ToStringStyle.MULTI_LINE_STYLE);
    builder.append("field1", field1);
    builder.append("field2", field2);
    builder.append("field3", field3);

    return builder.toString();
}

示例结果:

ar.com.bna.lang.MyClass@ebbf5c[
  field1=<null>
  field2=0
  field3=false
]

有一些样式,例如 JSON,没有 Classname,short 等等……

通过反射:

@Override
public String toString() {
    return ToStringBuilder.reflectionToString(this);
}

你也可以指出风格:

@Override
public String toString() {
    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}