zoukankan      html  css  js  c++  java
  • getFields()与getDeclaredFields()区别

    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);
            }
        }
    
  • 相关阅读:
    线性代数基础知识的复习
    第一个机器学习算法:线性回归与梯度下降
    初识机器学习
    VScode中LeetCode插件无法登录的情况
    内存管理-内存管理功能
    分组密码
    Linux进程调度
    进程调度
    死锁
    临界区和缩
  • 原文地址:https://www.cnblogs.com/hoge/p/6519008.html
Copyright © 2011-2022 走看看