* getFields()与getDeclaredFields()区别:getFields()只能访问类中声明为公有的字段,私有的字段它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法
* getMethods()与getDeclaredMethods()区别:getMethods()只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法
* getConstructors()与getDeclaredConstructors()区别:getConstructors()只能访问类中声明为public的构造函数.getDeclaredConstructors()能访问类中所有的构造函数,与public,private,protect无关
/** * 参数验证 执行. * <p> * ParamValide注释 解析实施 * </p> * * @param object * 待验证对象 * @throws AdapterException * 基本验证错误 */ public static void valid(Object object) throws AdapterException { if (object == null) { return; } // 获取object的类型 Class<? extends Object> clazz = object.getClass(); // 获取该类型声明的成员 Field[] fields = clazz.getDeclaredFields(); // 遍历属性 for (Field field : fields) { // 对于private私有化的成员变量,通过setAccessible来修改器访问权限 field.setAccessible(true); validate(field, object); // 重新设置会私有权限 field.setAccessible(false); } }