有时候我们要在log里把VO里面的一些属性打印出来,一般我们都会去改写类的toString方法,apache的ReflectionToStringBuilder类利用放射机制,能方便的实现类的toString方法,还能通过参数设置toString的样式
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
public class UserVO {
private String name;
private String password;
private int age;
private String gender;
Setter and Getter
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
/*@Override
public String toString() {
return ReflectionToStringBuilder.toString(this, ToStringStyle.SIMPLE_STYLE);
}*/
}
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
UserVO vo = new UserVO("zhangsan","123",8,"male");
//String s = ReflectionToStringBuilder.toString(vo, ToStringStyle.MULTI_LINE_STYLE);
//ToStringStyle.SIMPLE_STYLE 设置toString显示样式
ReflectionToStringBuilder.setDefaultStyle(ToStringStyle.MULTI_LINE_STYLE);
String s = ReflectionToStringBuilder.toStringExclude(vo, "password");//将password属性排出在toString方法之外
System.out.println(s);
}
}