toString 和 toStringBuilder的区别
分析一段代码的时候,发现重写了toString方法,而重写之后return的是对一个名为toStringBuilder方法的操作,于是到网上查了一次,大侠们的回答很详实。
也就是说StringBuilder可以自由改变字符串,而String不行。
其实toString和toStringBuilder很相似,只是在返回值上面有区别。前者返回值是String类型,而后者返回值是StringBuilder类型,在被重写后,可以灵活的改变返回值的长度。
通过toString的重写,可以实现返回单个的字符串。而如果需要返回的是多个的,或者带有重复的特殊的字符,就不方便了。于是就会用到toStringBuilder方法,(如Person@14576877[name=pengzhoushuo,age=25,sex=true]中的@,[,],=)
当然前者也可以实现,只是麻烦些,而且容易出错,效率低。
@override
public String toString() {
return super.toString() + ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
}
有动态代理的地方一定慎用ToStringBuilder.reflectionToString方法
分享到:
相关推荐
本篇文章将深入探讨几种在Java中实现`toString()`方法的方式,包括自定义、使用`ToStringBuilder`和`ReflectionToStringBuilder`。 首先,自定义`toString()`是最基础的方式。开发者可以根据需求手动编写代码,列出...
Java组件开发(1)ToStringBuilder
除了手动编写`toString()`方法,还可以利用Apache Commons Lang库中的`ToStringBuilder`和`ReflectionToStringBuilder`。这些工具类可以自动化地生成`toString()`,包括类名、字段名及其值,甚至可以包含继承的字段...
总结起来,ToStringBuilder是Java开发中提高代码可读性和可维护性的利器,它通过简化toString方法的实现,使我们在输出对象信息时能更加灵活和高效。选择合适的ToStringStyle,可以适应不同的输出需求,无论是在调试...
reflectionEquals()和reflectionToString()超级简单,但却普通的建造者仍然很容易,但是需要很多样板使用番石榴的 toStringBuilder()性能优于Apache,但仍需要相同的样板,并且格式与数据类格式不同(它使用花括号而...
`ToStringBuilder`提供了创建自定义`toString()`实现的方法,使得在调试和日志记录中更容易理解对象的状态。它可以包含对象的所有字段,使得输出的信息更详细且易于阅读。 Apache Commons Lang的这些工具类使得...
- **使用`ToStringBuilder`:** Apache Commons Lang 库中的`ToStringBuilder`可以帮助构建一个良好的`toString()`方法,它提供了多种方法来生成清晰、一致的字符串表示。 #### 四、其他调试技巧 **不要过度依赖...
在自定义类的`toString()`方法时,可以使用`ToStringBuilder`和`ReflectionToStringBuilder`,它们接受`ToStringStyle`作为参数,生成不同风格的`toString()`输出。 使用Apache Commons Lang的工具类可以提高代码的...
`ToStringBuilder`则帮助创建对象的toString()方法输出,使得调试和日志记录更加方便。 Lang项目中还包括一些枚举相关的工具,如`EnumUtils`,以及`SystemUtils`,它提供了关于运行环境的一些信息,如Java版本、...
- ToStringBuilder和ToStringStyle:用于自定义对象的toString()方法输出格式。 2. Jakarta Commons Collections Commons Collections库为Java标准集合框架提供了扩展。它包含以下组件: - Bag:存储对象的集合,...
这个包主要是为了提供对象构建和比较的工具,如ToStringBuilder、HashCodeBuilder和EqualsBuilder,它们帮助开发者生成对象的toString、hashCode和equals方法,避免了重复的样板代码。 以上只是Commons Lang的一...
- `ToStringBuilder` 和 `ReflectionToStringBuilder` 帮助创建对象的自定义toString方法。 Apache Commons Lang 3.6 还包含了其他很多实用工具类和方法,它们都是为了提高Java开发的效率和代码质量。这个库已经被...
- **解决方案**:利用 Commons Lang 的 `ToStringBuilder` 类自动生成 `toString()` 方法。 - **讨论**: - `ToStringBuilder` 允许开发者指定哪些字段应该包含在最终的字符串中,并且支持自定义格式。 - 通过这种...
- 如ToStringBuilder和EqualsBuilder,帮助编写对象的equals()和toString()方法。 9. **性能**: - 优化了内部实现,提高了代码执行效率。 10. **线程安全**: - 部分工具类设计为线程安全,可以在多线程环境中...
6. **org.apache.commons.lang3.builder.ToStringBuilder**:虽然Apache Commons Lang主要不是为了解析JSON,但它可以帮助你生成人类可读的字符串,包括JSON格式的表示,可以作为辅助工具。 在这些库中,`...
通过运行和分析测试用例,我们可以验证`ToStringBuilder`和其他工具类的行为是否符合预期,也能发现可能存在的问题或边界条件。对于“测试版”的库来说,测试用例的完整性和覆盖率尤其重要,因为它们可以帮助开发者...
这三个类都是为了方便地创建 `equals()`、`hashCode()` 和 `toString()` 方法。 - **EqualsBuilder**: 构建 `equals()` 方法。 - **HashCodeBuilder**: 构建 `hashCode()` 方法。 - **ToStringBuilder**: 构建 `...
虽然Apache Commons Lang3不是专门的JSON库,但它提供了`ToStringBuilder`和`ReflectionToStringBuilder`,可用于生成JSON格式的字符串,帮助调试和日志记录。 5. **JSON-P (javax.json)** Java EE 7引入的标准...
- ToStringBuilder:用于快速构建toString()方法逻辑。 ***mons BeanUtils库提供了操作Java Bean属性的工具方法。包括: - BeanUtils:提供基本的属性操作如拷贝属性、设置属性值等。 - PropertyUtils:提供了...
应使用`JSONArray`构造函数或`JSONArray.fromObject()`方法,但`fromObject()`是`org.apache.commons.lang3.builder.ToStringBuilder`的方法,而不是`JSONArray`的),将列表转换为`JSONArray`,最后调用`toString()...