2012-05-09 43 views
2

我有一個包含許多字段的java bean。我知道如何使用StringBuilder覆蓋toString()並直接使用字段名稱。有沒有辦法像沒有字段名稱那樣以更好的方式做到這一點?簡單的方法來覆蓋Java中的toString()

在此先感謝。

P.S:這個bean已經在我的產品中實現了。

回答

9

我經常使用Apache公共朗的ToStringBuilder像這樣:

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

這使用反射來生成有問題的對象toString

+4

只要注意,它的性能開銷可能相當巨大。如果它很少使用或用於調試目的,它是完美的。 – Voo

+0

這可以在Android中使用嗎?當我嘗試導入'org.apache.commons.lang3.builder.ToStringBuilder;'時,我的IDE找不到它。 – Azurespot

1

您可以使用反射來顯式執行相同的操作,也可以使用助手類(如here提供的助手類)執行相同的操作。我會認爲反射有直接使用字段名稱的開銷。