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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 命令行查看cuda版本_ubuntu查看cudnn版本

    命令行查看cuda版本_ubuntu查看cudnn版本linux查看cuda版本1.cat/usr/local/cuda/version.json2.或者nvcc-V(注意是大写)3nvidia-smi1和3中显示的是11.32中显示的是10.1CUDA有两个主要的API:runtime(运行时)API和driverAPI。这两个API都有对应的CUDA版本(如10.1和11.3等)。用于支持driverAPI的必要文件(如libcuda.so)是由GPUdriverinstaller安装的nvidia-smi就属于

    2022年8月30日
    0
  • 状态模式「建议收藏」

    状态模式「建议收藏」状态模式

    2022年4月21日
    49
  • 【spring】spring的jdbcTemplate操作[通俗易懂]

    【spring】spring的jdbcTemplate操作[通俗易懂]【spring】spring的jdbcTemplate操作

    2022年4月25日
    22
  • reaver使用相关[通俗易懂]

    reaver使用相关[通俗易懂](非TP-LINK路由推荐–d9–t9参数防止路由僵死reaver-imon0-bMAC-a-S–d9–t9-vv)小结-学习时应因状况调整参数(-c后面都已目标频道为1作为例子)目标信号非常好: reaver -i mon0 -bMAC -a -S -vv -d0 -c1目标信号普通: reaver -i mon0 -bMAC

    2022年5月4日
    107
  • IDEA 2021.7.21 激活码【中文破解版】

    (IDEA 2021.7.21 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月22日
    49
  • JavaWeb之Request对象和Response对象详解

    JavaWeb之Request对象和Response对象详解一:概述Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象一、Response对象   1.Resonse的继承结构:         ServletResponse–HttpServletResponse   2.Response代表响应,于是响应消息中的状态码、响应头、实体

    2022年6月4日
    46

发表回复

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

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