使用谷歌番石榴的Objects.ToStringHelper
我ToStringBuilder.reflectionToString(class)
在commons-
lang中使用toString()
了简单的DTO。现在,我尝试使用Google Guava代替Apache
Commons库。我Objects.ToStringHelper
在番石榴找到了。但是如果班上有很多成员,这太冗长了。例如:
@Overridepublic String toString() {
return MoreObjects.toStringHelper(this.getClass()).add("name", name)
.add("emailAddress", emailAddress)
.add("department", department).add("yearJoined", yearJoined)
.toString();
}
如果我使用commons-lang,则简单得多:
@Overridepublic String toString() {
return ToStringBuilder.reflectionToString(this);
}
有什么更好的方法可以toString()
用Guava而不是commons-lang 来实现?
番石榴文件
回答:
我有番石榴的小招com.google.common.base.MoreObjects.toStringHelper()
。我将 IntelliJ
IDEA 配置为在自动生成toString()
方法时使用它。我认为您可以在 Eclipse中 执行相同的操作。这是在
Intellij中执行的方法 :
- 上课
- 点击
Alt
+Insert
弹出“生成”菜单 - 选择
toString()
- 点击“设置”按钮
- 转到“模板”标签
- 创建一个名为“ Guava’s MoreObjects.toStringHelper()”的新模板(我通过复制“ ToStringBuilder”模板来做到这一点)
将模板更改为:
public String toString() {
set ($autoImportPackages = “com.google.common.base.MoreObjects”)
return MoreObjects.toStringHelper(this)
foreach ($member in $members)
.add("$member.name", $member.accessor)
end
.toString();
}
保存模板,关闭“设置”和“生成toString()”窗口
您现在可以
Guava's MoreObjects.toStringHelper()
在生成toString()
方法时选择模板
在类中添加新字段时,只需重新生成toString()
方法(IDEA会要求您确认要替换现有toString()
方法)。
以上是 使用谷歌番石榴的Objects.ToStringHelper 的全部内容, 来源链接: utcz.com/qa/401550.html