开源工具 — Apache Commons Lang(1)
开源工具系列文章:
Apache Commons Lang(1):http://ray-yui.iteye.com/blog/1953020
相信Apache的大名各位一定不会陌生,Java领域中常用的Ant,Maven,Struts1~2等都是托管在Apache下的项目,而在使用Apache框架的时候,通常要添加框架的依赖包,包括apache-commons系列的依赖包,相信读者对此也不会陌生,而apache-common是非常有用的工具包,包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动
一个优秀的类应该重写toString,hashCode,equals,compareTo方法,我们来看一下apache如何带我们简化这些操作,以下示例支持两种形式,一种是通过逐个参数添加从而精细控制那些参数参与比较和输出,另一种是通过反射让全部参数都参与比较和输出
Builder系列
public class TestMain {public static void main(String[] args) throws IllegalAccessException {Test test = new Test("1", "Ray", "hello");// 以下两个方法完全一样,都能获取共有或私有变量,因为第三个参数都设置了不检查FieldUtils.getDeclaredField(Test.class, "username", true);FieldUtils.getField(Test.class, "username", true);// 读取私有或公共变量的值FieldUtils.readField(test, "username", true);// 读取静态变量FieldUtils.readStaticField(Test.class, "STATIC_FIELD");// 写入私有或共有变量FieldUtils.writeField(test, "username", "RayRay", true);// 写入静态变量FieldUtils.writeStaticField(Test.class, "STATIC_FIELD", "static_value");}}