* 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);
}
}
浙公网安备 33010602011771号