前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 遍历对象的属性和值,封装返回 Map

Java 遍历对象的属性和值,封装返回 Map

原创
作者头像
Alone88
修改2019-11-11 11:26:28
7.4K0
修改2019-11-11 11:26:28
举报
文章被收录于专栏:Alone88Alone88

有时候需要获取对象的属性值,属性少的话就好设置了,属性一多就不好设置了。

我们可以通过反射来遍历

代码语言:txt
复制
    UpdateWeb updateWeb = new UpdateWeb();

       Field[] fields =  updateWeb.getClass().getDeclaredFields();
    
       for (Field field : fields){
           field.setAccessible(true);
           String key = field.getName();// 获取属性名
           System.out.println(key);
           String method = key.substring(0,1).toUpperCase()+key.substring(1);// 将属性首字符大写,方便get & set 方法
           Method setmethod = updateWeb.getClass().getMethod("get"+method);// 获取 get 方法
            String value = null;
           try {
               value = (String)setmethod.invoke(updateWeb);// 通过 get 获取值
               System.out.println(value);
           } catch (IllegalAccessException e) {
               e.printStackTrace();
           } catch (InvocationTargetException e) {
               e.printStackTrace();
           }
           System.out.println(value);
       }

然后我们可以封装成 返回 map 的方法

代码语言:txt
复制
public static Map<String, Object> BeantoMap(Object object) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        Field[] fields = object.getClass().getDeclaredFields();
        Map<String, Object> map = new HashMap<String, Object>();

        for (Field field:fields) {
            field.setAccessible(true);
            String key = field.getName();
            String method = key.substring(0,1).toUpperCase()+key.substring(1);
            Method m = object.getClass().getDeclaredMethod("get"+method);
            Object value = m.invoke(object);
            map.put(key,value);
        }
        return map;
    }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档