Apache Commons Lang之toString()实现,commonstostring
分享于 点击 18171 次 点评:274
Apache Commons Lang之toString()实现,commonstostring
Apache Commons Lang之toString()实现 Apache Commons Lang为解决动态的toString()方法提供一套强有力的API。 一、实现策略 1、ReflectionToStringBuilder.toString(),通过反射方式实现。 2、new ToStringBuilder(),通过自定义显示格式方式实现,显示的式样提供了好几种。 二、实例 为了测试,创佳两个类 Foo、Bar,分别通过两种方式实现其toString方法 public class Foo {private String name;
private int age;
private Bar bar;
public Foo(String name, int age) {
this.name = name;
this.age = age;
}
//省略getter/setter方法
} public class Bar {
private String name;
public Bar(String name) {
this.name = name;
}
//省略getter/setter方法
} 1、通过反射方式实现toString(); @Override
public String toString() {
return ReflectionToStringBuilder.toString(this);
} 显示效果: lang.Foo@c2a132[name=foo,age=88,bar=lang.Bar@e102dc[name=bar]]
Process finished with exit code 0 2、通过自定义格式方式实现 @Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("name", name)
.append("age", age)
.append("bar", bar)
.toString();
} 上面这个是仅仅给了Foo类的toString()写法。 ToStringBuilder类有好几个静态常量,用来控制显示格式。 下面给出一个运行结果: lang.Foo@1aaa14a[
name=foo
age=88
bar=lang.Bar@1e51060[name=bar]
]
Process finished with exit code 0 从中看来,toString()通过反射方式实现可以真正实现动态的。写法简单也省事,推荐!
相关文章
- 暂无相关文章
用户点评