我ToStringBuilder.reflectionToString(class)在commons- lang中使用toString()了简单的DTO。现在,我尝试使用Google Guava代替Apache Commons库。我Objects.ToStringHelper在番石榴找到了。但是如果班上有很多成员,这太冗长了。例如:
ToStringBuilder.reflectionToString(class)
toString()
Objects.ToStringHelper
@Override public String toString() { return MoreObjects.toStringHelper(this.getClass()).add("name", name) .add("emailAddress", emailAddress) .add("department", department).add("yearJoined", yearJoined) .toString(); }
如果我使用commons-lang,则简单得多:
@Override public String toString() { return ToStringBuilder.reflectionToString(this); }
有什么更好的方法可以toString()用Guava而不是commons-lang 来实现?
番石榴文件
我有番石榴的小招com.google.common.base.MoreObjects.toStringHelper()。我将 IntelliJ IDEA 配置为在自动生成toString()方法时使用它。我认为您可以在 Eclipse中 执行相同的操作。这是在 Intellij中执行的方法 :
com.google.common.base.MoreObjects.toStringHelper()
Alt
Insert
将模板更改为:
public String toString() {
return MoreObjects.toStringHelper(this)
.add("$member.name", $member.accessor)
.toString();
}
保存模板,关闭“设置”和“生成toString()”窗口
您现在可以Guava's MoreObjects.toStringHelper()在生成toString()方法时选择模板
Guava's MoreObjects.toStringHelper()
在类中添加新字段时,只需重新生成toString()方法(IDEA会要求您确认要替换现有toString()方法)。