ToStringBuilder 是 Apache Commons Lang 库中的一个工具类,用于简化实现对象的 toString() 方法。它提供了一种简单的方法来构建一个对象的字符串表示,包括对象的属性和值。
在 Java 中,每个类都继承了 Object 类,而 Object 类的 toString() 方法通常返回的是对象的类名和内存地址的表示。但是在实际开发中,我们通常希望能够自定义对象的 toString() 方法输出更有意义的信息,方便调试和日志记录。
ToStringBuilder 提供了多个方法来构建一个对象的字符串表示,包括属性和值的格式化。具有以下几个主要的方法:
1. append(Object obj): 添加一个属性和对应的值到字符串中。
2. append(String name, Object value): 添加一个带有属性名和对应的值到字符串中。
3. appendSuper(String superToString): 添加父类的 toString() 调用结果。
4. appendToString(String toString): 添加自定义生成的 toString() 调用结果。
5. append(Object[] array): 添加一个数组的元素到字符串中。
6. append(Collection> collection): 添加一个集合的元素到字符串中。
除了上面的方法之外,ToStringBuilder 还提供了一些其他方法来设置和获取属性的格式化选项:
1. setDefaultFieldSeparator(String separator): 设置属性之间的分隔符,默认为逗号和空格。
2. setFieldSeparator(String separator): 设置当前属性之间的分隔符。
3. setDefaultFieldNameValueSeparator(String separator): 设置属性名和属性值之间的分隔符,默认为等号和空格。
4. setFieldNameValueSeparator(String separator): 设置当前属性名和属性值之间的分隔符。
5. setNullText(String nullText): 设置 null 值的文本表示,默认为一个字符串 "null"。
6. setUseFieldSeparators(boolean useFieldSeparators): 设置属性之间是否使用分隔符,默认为 true。
7. setReflectUpToClass(Class> reflectUpToClass): 设置 toString() 方法从哪个类开始反射属性,默认为 Object 类。
8. setExcludeFieldNames(String... excludeFieldNames): 设置要排除的属性名列表。
下面是一个使用 ToStringBuilder 的示例:
```java
public class Person {
private String name;
private int age;
private String[] hobbies;
public Person(String name, int age, String[] hobbies) {
this.name = name;
this.age = age;
this.hobbies = hobbies;
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("name", name)
.append("age", age)
.append("hobbies", hobbies)
.toString();
}
public static void main(String[] args) {
String[] hobbies = {"reading", "swimming"};
Person person = new Person("Alice", 25, hobbies);
System.out.println(person);
}
}
```
输出结果为:
```
Person[name=Alice, age=25, hobbies=[reading, swimming]]
```
以上代码中,我们创建了一个名为 Person 的类,包含了 name、age 和 hobbies 三个属性。在 toString() 方法中,我们使用 ToStringBuilder 来构建一个字符串表示。通过连续调用 append() 方法添加属性和值,然后调用 toString() 方法生成最终的字符串。
从输出结果可以看出,ToStringBuilder 基于属性名和属性值生成了一个格式化的字符串表示,属性之间使用逗号和空格分隔,属性名和属性值之间使用等号和空格分隔。
通过使用 ToStringBuilder,我们可以快速轻松地生成一个对象的可读性较高的字符串表示,方便我们在调试和日志记录中使用。同时,ToStringBuilder 还提供了许多选项来自定义属性和值的格式化,以及对特殊情况(如 null 值)的处理。这使得 ToStringBuilder 成为一个非常实用的工具类。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复