實現 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);
}