您使用或看到的最好的String构建器类是什么?是什么让它变得美好[关闭]
2022-09-02 20:53:16
让我们面对现实,编写漂亮的toString消息是一个无聊的混乱的苦差事,需要完成,因为它确实有助于调试器或日志记录中的插入。
你喜欢或希望在这样的助手中应该有什么功能......
-
转储属性应带有标签。
名称=mP国家=澳大利亚...
-
应选择性地跳过某些默认值的值。
- 打印大量 0 或 null 的属性是没有意义的。
- 如果设置了标签,但值为 null,则不要包含任何值。
标签和值之间的分隔符应该是可更新的,并且在添加标签和值时应自动插入标签和值之间。
-
它还应该自动插入您选择的分隔符。
如果你在包含数组时想要逗号空格,那么就这样吧。
-
它应该自动引用字符串值...因为确切地知道字符串的开始和结束位置非常重要。
*名称=mP州=“新南威尔士州”
当添加列表,映射或集合时,应遵守有关引用字符串,使用集合分隔符等的规则。请不要只是转储Collection.toString()。
在我正在改进的东西中,我还有其他一些,你可以列出你自己的想法,观察等。
new ToStringBuilder()
.setLabelValueSeparator('=')
.label("name")
.value(Country.AUSTRALIA) // -> returns "Australia" without the quotes.
.label("day of death")
.value(null) //
.label("numbers")
.valueSeparator(",");
.value(Arrays.asList( 1, 2, 3 )
.build();
当然会导致“name=”Australia“数字=1, 2, 3;