实现 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);
}