`

toString 和 toStringBuilder的区别

阅读更多

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

    本篇文章将深入探讨几种在Java中实现`toString()`方法的方式,包括自定义、使用`ToStringBuilder`和`ReflectionToStringBuilder`。 首先,自定义`toString()`是最基础的方式。开发者可以根据需求手动编写代码,列出...

    Java组件开发(1)ToStringBuilder

    Java组件开发(1)ToStringBuilder

    万能的toString

    除了手动编写`toString()`方法,还可以利用Apache Commons Lang库中的`ToStringBuilder`和`ReflectionToStringBuilder`。这些工具类可以自动化地生成`toString()`,包括类名、字段名及其值,甚至可以包含继承的字段...

    ToStringBuilder类的一些心得

    总结起来,ToStringBuilder是Java开发中提高代码可读性和可维护性的利器,它通过简化toString方法的实现,使我们在输出对象信息时能更加灵活和高效。选择合适的ToStringStyle,可以适应不同的输出需求,无论是在调试...

    kassava:该库提供了一些有用的kotlin扩展函数,用于在没有所有样板的情况下实现toString(),hashCode()和equals()

    reflectionEquals()和reflectionToString()超级简单,但却普通的建造者仍然很容易,但是需要很多样板使用番石榴的 toStringBuilder()性能优于Apache,但仍需要相同的样板,并且格式与数据类格式不同(它使用花括号而...

    commons-lang3-3.3.2

    `ToStringBuilder`提供了创建自定义`toString()`实现的方法,使得在调试和日志记录中更容易理解对象的状态。它可以包含对象的所有字段,使得输出的信息更详细且易于阅读。 Apache Commons Lang的这些工具类使得...

    使用 Eclipse 调试 Java 程序的几个技巧

    - **使用`ToStringBuilder`:** Apache Commons Lang 库中的`ToStringBuilder`可以帮助构建一个良好的`toString()`方法,它提供了多种方法来生成清晰、一致的字符串表示。 #### 四、其他调试技巧 **不要过度依赖...

    工具类-tools

    在自定义类的`toString()`方法时,可以使用`ToStringBuilder`和`ReflectionToStringBuilder`,它们接受`ToStringStyle`作为参数,生成不同风格的`toString()`输出。 使用Apache Commons Lang的工具类可以提高代码的...

    apache-commons-lang.zip 源码

    `ToStringBuilder`则帮助创建对象的toString()方法输出,使得调试和日志记录更加方便。 Lang项目中还包括一些枚举相关的工具,如`EnumUtils`,以及`SystemUtils`,它提供了关于运行环境的一些信息,如Java版本、...

    JakartaCommons 详细教程更助于你的基础

    - ToStringBuilder和ToStringStyle:用于自定义对象的toString()方法输出格式。 2. Jakarta Commons Collections Commons Collections库为Java标准集合框架提供了扩展。它包含以下组件: - Bag:存储对象的集合,...

    apache commons-lang简介

    这个包主要是为了提供对象构建和比较的工具,如ToStringBuilder、HashCodeBuilder和EqualsBuilder,它们帮助开发者生成对象的toString、hashCode和equals方法,避免了重复的样板代码。 以上只是Commons Lang的一...

    commons-lang3-3.1.jar

    - `ToStringBuilder` 和 `ReflectionToStringBuilder` 帮助创建对象的自定义toString方法。 Apache Commons Lang 3.6 还包含了其他很多实用工具类和方法,它们都是为了提高Java开发的效率和代码质量。这个库已经被...

    apache commons 包最新使用指南(2009英文)

    - **解决方案**:利用 Commons Lang 的 `ToStringBuilder` 类自动生成 `toString()` 方法。 - **讨论**: - `ToStringBuilder` 允许开发者指定哪些字段应该包含在最终的字符串中,并且支持自定义格式。 - 通过这种...

    commons-lang所有版本(1.0-3.4).zip

    - 如ToStringBuilder和EqualsBuilder,帮助编写对象的equals()和toString()方法。 9. **性能**: - 优化了内部实现,提高了代码执行效率。 10. **线程安全**: - 部分工具类设计为线程安全,可以在多线程环境中...

    JSONObject生成的json的架包

    6. **org.apache.commons.lang3.builder.ToStringBuilder**:虽然Apache Commons Lang主要不是为了解析JSON,但它可以帮助你生成人类可读的字符串,包括JSON格式的表示,可以作为辅助工具。 在这些库中,`...

    utils-beta:实用程序库的扩展,其中包括“测试版”中的库

    通过运行和分析测试用例,我们可以验证`ToStringBuilder`和其他工具类的行为是否符合预期,也能发现可能存在的问题或边界条件。对于“测试版”的库来说,测试用例的完整性和覆盖率尤其重要,因为它们可以帮助开发者...

    看例子练apache_commons之lang篇

    这三个类都是为了方便地创建 `equals()`、`hashCode()` 和 `toString()` 方法。 - **EqualsBuilder**: 构建 `equals()` 方法。 - **HashCodeBuilder**: 构建 `hashCode()` 方法。 - **ToStringBuilder**: 构建 `...

    json 常用jar包

    虽然Apache Commons Lang3不是专门的JSON库,但它提供了`ToStringBuilder`和`ReflectionToStringBuilder`,可用于生成JSON格式的字符串,帮助调试和日志记录。 5. **JSON-P (javax.json)** Java EE 7引入的标准...

    apache commons 帮助文档电子书

    - ToStringBuilder:用于快速构建toString()方法逻辑。 ***mons BeanUtils库提供了操作Java Bean属性的工具方法。包括: - BeanUtils:提供基本的属性操作如拷贝属性、设置属性值等。 - PropertyUtils:提供了...

    java-对象数组转换为json

    应使用`JSONArray`构造函数或`JSONArray.fromObject()`方法,但`fromObject()`是`org.apache.commons.lang3.builder.ToStringBuilder`的方法,而不是`JSONArray`的),将列表转换为`JSONArray`,最后调用`toString()...

Global site tag (gtag.js) - Google Analytics