首页 > 数据库技术 > 详细

Java 反射 getDeclareFields getModifiers setAccessible(true)

时间:2016-05-27 16:35:06      阅读:145      评论:1      收藏:0      [点我收藏+]

标签:class   style   si   la   代码   sp   java   方法   c   

示例代码:

public static Map<String, Object> dtoToMap(Object obj, String pre,
            String las) {
        Map result = new HashMap();
        Class clazz = obj.getClass();
        Field[] fs = clazz.getDeclaredFields();
        for (int i = 0; i < fs.length; i += 1) {
            if (Modifier.isStatic(fs[i].getModifiers())) {
                continue;
            }
            fs[i].setAccessible(true);
            try {
                Object value = fs[i].get(obj);
                
                if (value != null) {
                    result.put(pre + fs[i].getName() + las, value);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return result;
    }

 

方法解释:

通过反射获取obj的属性并对其拼接前缀和后缀

getClass:获取obj对象

getDeclaredFields()
          返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段。获得某个类的所有申明的字段,即包括public、private和proteced,但是不包括父类的申明字段。

    getDeclaredField()

    getFields()

        得某个类的所有的公共(public)的字段,包括父类。

    getConstructors()和getDeclaredConstructors(),getMethods()和getDeclaredMethods()。

        类似上面所讲。

    public Method getDeclaredMethod(String name, Class<?>... parameterTypes)

        name - 方法名

     parameterTypes - 参数数组

 

Modifier.isStatic(fs[i].getModifiers())

           判断获取的Class属性是否是静态 修饰符

    类似的还有public、private、protected  

continue

    跳出continue所属代码块,继续执行下面的代码

    break

        不继续执行break之后的代码块,跳到和break所在代码块相关的外层代码块开始执行。

fs[i].setAccessible(true);

    true或false决定是否可以访问获取的数组里面的属性值

fs[i].getName()

    获取数组中得到的属性的名字

Java 反射 getDeclareFields getModifiers setAccessible(true)

标签:class   style   si   la   代码   sp   java   方法   c   

原文:http://www.cnblogs.com/xxlu/p/5534681.html

(0)
(0)
   
举报
评论 一句话评论(1
2016-05-27 16:35:28
学习了,不错的样子
回复
 (4)
 (0)
1条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号