A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 不二晨 金牌黑马   /  2019-3-11 14:08  /  1132 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

反射得到属性值与属性值

1.通过对象与属性名得到属性值

private static Object getFieldValue(Object object, String fieldName)  
           {  
               Object value = new Object();  
               SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
               try {  
                   String methodName = fieldName.substring(0, 1).toUpperCase()+ fieldName.substring(1);  
                   Method method = object.getClass().getMethod("get" + methodName);
                   value = method.invoke(object);  
                   if(java.util.Date.class.equals(method.getReturnType())){
                           if(value!=null){
                                   value =  df.format(value);
                           }
                   }
                   
               } catch (Exception e) {  
                   e.printStackTrace();  
               }   
               return value;  
           }
2.得到对象中所有属性

private static String[] getAllFields(Object object){
                Field[]  fields =  object.getClass().getDeclaredFields();  
                List<String> list = new ArrayList<String>();
                for(Field field : fields){
                        list.add(field.getName());
                }
                return list.toArray(new String[list.size()]);
        }
3.设置属性值

// 该方法的参数列表是一个类的 类名、成员变量、给变量的赋值
    public void setProperty(Object obj, String PropertyName, Object value)
            throws NoSuchFieldException, SecurityException,
            IllegalArgumentException, IllegalAccessException {

        // 获取obj类的字节文件对象
        Class c = obj.getClass();

        // 获取该类的成员变量
        Field f = c.getDeclaredField(PropertyName);

        // 取消语言访问检查
        f.setAccessible(true);

        // 给变量赋值
        f.set(obj, value);

    }




---------------------
【转载,仅作分享,侵删】
作者:xinyuebaihe
原文:https://blog.csdn.net/xinyuebaihe/article/details/79386267
版权声明:本文为博主原创文章,转载请附上博文链接!

1 个回复

倒序浏览
奈斯,感谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马