java 对象转map,去掉null

java 对象转map,去掉nullpublicstaticMap<String,Object>beanToMap(Objectobject){Map<String,Object>map=null;try{map=newHashMap<String,Object>();Bean…

大家好,又见面了,我是你们的朋友全栈君。

    public static Map<String,Object> beanToMap(Object object){
        Map<String,Object> map = null;
        try {
            map = new HashMap<String, Object>();

            BeanInfo beanInfo = Introspector.getBeanInfo(object.getClass());
            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
            for (PropertyDescriptor property : propertyDescriptors) {
                String key = property.getName();
                if (key.compareToIgnoreCase("class") == 0) {
                    continue;
                }
                Method getter = property.getReadMethod();
                Object value = getter!=null ? getter.invoke(object) : null;
                map.put(key, value);
            }
            //key 可能会把自己的class 和hashcode编进去,直接去掉
            map.remove("class");

        } catch (Exception e) {
            e.printStackTrace();
            return new HashMap<>();
        }
        Set<String> set = map.keySet();
        Iterator<String> it = set.iterator();
        while (it.hasNext()){
            String key = it.next();
            if (map.get(key)==null || map.get(key)==""){
                map.remove(key);
                set = map.keySet();
                it = set.iterator();
            }
        }
        return map;
    }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139824.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言中负数除法与右移取整问题

    C语言中负数除法与右移取整问题

    2021年9月27日
  • 网关地址和网关IP是什么[通俗易懂]

    网关地址和网关IP是什么[通俗易懂]一、什么是IP?:1、IP地址是指互联网协议地址(英语:InternetProtocolAddress,又译为网际协议地址),是IPAddress的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。目前还有些ip代理软件,但大部分都收费。2、IP是英文InternetProtocol的缩写,意思是“网络之间…

    2022年6月16日
  • 局域网,广域网和因特网的区别_因特网是不是广域网

    局域网,广域网和因特网的区别_因特网是不是广域网局域网、广域网、因特网,这三个概念我们经常会听到,但是是否真的理解他们之间有什么联系和区别呢?局域网(LAN,LocalAreaNetwork),如同其名字,即范围较小的计算机网络。广域网(WAN,WideAreaNetwork),相较于局域网范围较大。因特网(Internet),由全球所有的网络所组成的集合,也就是由无数个局域网,通过WAN线路汇聚到运营商,然后运营商之间互联起来,所形成的互联网。其中局域网和广域网是两个十分相近的概念,举个例子来简单理解一下吧。如果你摆弄过路由.

    2022年10月18日
  • [转] 场景管理

    [转] 场景管理

    2021年8月22日
  • Python open函数详解「建议收藏」

    Python open函数详解「建议收藏」演示环境,操作系统:Win1021H2(64bit);Python解释器:3.8.10。open是Python的一个内置函数,一般用于本地文件的读写操作。用法如下。my_file=open(file,mode,buffering,encoding,errors,newline,closefd,opener)#打开文件…#读写操作。省略my_file.colse()#释放文件open函数必须搭配.close()方法使用,先用open打开文件,然后进行读写操

    2022年5月20日
  • 在java的方法中定义一个常量_c语言中常量和常量表达式的区别

    在java的方法中定义一个常量_c语言中常量和常量表达式的区别如果可能,修改getIndex()方法,使其返回枚举而不是整数.如果无法做到这一点,则需要将索引映射到枚举元素:鉴于以下枚举:publicenumIndex{ONE,TWO,THREE}您可以使用将索引映射到枚举元素Index.values()[index]给定你的方法IntegergetIndex(),你可以做类似的事情switch(Index.values()[getIndex()])…

    2022年9月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号