commons lang组件之自动生成toString()内容
2009年10月30日
5 条评论
问题
希望能自动生成toString()方法
解决方案
使用Commons Lang的ReflectionToStringBuilder或ToStringBuiler,配合ToStringBuilder可生成toString()方法
.下面的代码显示了如何使用反射生成器(reflection builder)生成toString()方法.
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
public String toString(){
return ReflectionToStringBuilder.toString(this);
}
让toString()的内容与不断变化的类保持一致,是一项让人心烦又容易遗忘的工作.Commons Lang带有一个非常易用的工具类,
通过反射自动完成这件麻烦事.ToStringBuilder类及其派生类ReflectionToStringBuilder能把原本臃肿的toString()方法
浓缩成一行.更重要的是ReflectionToStringBuilder反映了对象模型未来的变化趋势.
在有限的时间和预算条件下,面对含有上百个实体的对象模型,要保证toString()方法能实时更新几乎就是天方夜谭.如果你的类
拥有含义明确的toString()方法,在诊断程序时将会受益非浅.通过使用ReflectionToStringBuilder类,能确保输出是正确的.
依靠开发者手动维护toString()方法会很不可靠.