ApacheCommonsLang:toString()实现
来源:优易学  2011-2-18 11:05:37   【优易学:中国教育考试门户网】   资料下载   IT书店
  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()通过反射方式实现可以真正实现动态的。写法简单也省事,青年人网推荐!

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训