我有一個包含許多字段的java bean。我知道如何使用StringBuilder覆蓋toString()
並直接使用字段名稱。有沒有辦法像沒有字段名稱那樣以更好的方式做到這一點?簡單的方法來覆蓋Java中的toString()
在此先感謝。
P.S:這個bean已經在我的產品中實現了。
我有一個包含許多字段的java bean。我知道如何使用StringBuilder覆蓋toString()
並直接使用字段名稱。有沒有辦法像沒有字段名稱那樣以更好的方式做到這一點?簡單的方法來覆蓋Java中的toString()
在此先感謝。
P.S:這個bean已經在我的產品中實現了。
我經常使用Apache公共朗的ToStringBuilder
像這樣:
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
這使用反射來生成有問題的對象toString
。
Apache Common有一個ToStringBuilder
class,它使用反射來創建一個不錯的toString
結果。
您可以使用反射來顯式執行相同的操作,也可以使用助手類(如here提供的助手類)執行相同的操作。我會認爲反射有直接使用字段名稱的開銷。
只要注意,它的性能開銷可能相當巨大。如果它很少使用或用於調試目的,它是完美的。 – Voo
這可以在Android中使用嗎?當我嘗試導入'org.apache.commons.lang3.builder.ToStringBuilder;'時,我的IDE找不到它。 – Azurespot