欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

Apache Commons Lang之toString()实现,commonstostring

来源: javaer 分享于  点击 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()通过反射方式实现可以真正实现动态的。写法简单也省事,推荐!

相关文章

    暂无相关文章

用户点评