返回顶部
首页 > 资讯 > 精选 >Java基础将Bean属性值放入Map中的实例
  • 400
分享到

Java基础将Bean属性值放入Map中的实例

javabeanmap 2023-05-31 10:05:08 400人浏览 独家记忆
摘要

Java基础将Bean属性值放入Map中的实例利用发射将Java对象的属性值以属性名称为键,存储到Map中的简单实现。包括自身属性及从父类继承得到的属性。Java类型的getField[s]方法只能获取public 类型的属性,getDec

Java基础将Bean属性值放入Map中的实例

利用发射将Java对象的属性值以属性名称为键,存储到Map中的简单实现。包括自身属性及从父类继承得到的属性。Java类型的getField[s]方法只能获取public 类型的属性,getDeclaredFields则能获取所有声明的属性,同时,如果类的可见性非公有,则Field的get(Object)方法将取不到具体的属性值。

package com.wood.util;  import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map;   public class BeanToMapUtils {      public static Map<String,Object> beanToMap(Object bean){     Map<String,Object> result = new HashMap<String,Object>();     if(bean==null){       return result;     }          Field[] fields = bean.getClass().getDeclaredFields();     if(fields==null||fields.length==0){       return result;     }          for(Field field:fields){       //重置属性可见(而且一般属性都是私有的),否则操作无效       boolean accessible = field.isAccessible();       if(!accessible){         field.setAccessible(true);       }              //获取属性名称及值存入Map       String key = field.getName();       try {         result.put(key, field.get(bean));       } catch (IllegalArgumentException e) {         e.printStackTrace();       } catch (IllegalAccessException e) {         e.printStackTrace();       }              //还原属性标识       field.setAccessible(accessible);     }          //获取父类属性     fields = bean.getClass().getSuperclass().getDeclaredFields();     if(fields==null||fields.length==0){       return result;     }          for(Field field:fields){       //重置属性可见(而且一般属性都是私有的),否则操作无效       boolean accessible = field.isAccessible();       if(!accessible){         field.setAccessible(true);       }              //获取属性名称及值存入Map       String key = field.getName();       try {         result.put(key, field.get(bean));       } catch (IllegalArgumentException e) {         e.printStackTrace();       } catch (IllegalAccessException e) {         e.printStackTrace();       }              //还原属性标识       field.setAccessible(accessible);     }          return result;   }      public static void main(String[] args) {     Dog info = new Dog();     info.setCountry("cc");     info.setName("Dog");          info.setCateGory("gram");     info.setOwner("wang");          System.out.println(beanToMap(info));   } } 

--结束END--

本文标题: Java基础将Bean属性值放入Map中的实例

本文链接: https://lsjlt.com/news/225066.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java基础将Bean属性值放入Map中的实例
    Java基础将Bean属性值放入Map中的实例利用发射将Java对象的属性值以属性名称为键,存储到Map中的简单实现。包括自身属性及从父类继承得到的属性。Java类型的getField[s]方法只能获取public 类型的属性,getDec...
    99+
    2023-05-31
    java bean map
  • 基于springboot bean的实例化过程和属性注入过程
    目录bean的实例化过程和属性注入过程bean实例化流程说明bean的实例化过程和属性注入过程 了解过springboot的加载流程的都知道springboot初始化bean都在re...
    99+
    2024-04-02
  • Java循环对bean的属性进行赋值的实现
    项目背景 我们开发过程中会碰到这样一类问题,就是数据层或三方接口返回的Bean对象需要转换重新装换一下我们需要的对象。我们通常的做法就是通过getter/setter方法进行一个一...
    99+
    2024-04-02
  • Spring Bean的实例化之属性注入源码剖析过程
    前言 这一章节我们来讨论创建Bean过程中的属性注入,在Spring的IOC容器启动过程中,会把定义的Bean封装成BeanDefinition注册到一个ConcurrentHash...
    99+
    2024-04-02
  • HTML属性入门:为你的网站打下坚实基础
    HTML 属性是 HTML 元素的特性,用于定义元素的外观和行为。HTML 属性可以规定元素的大小、颜色、对齐方式、背景颜色等。学习 HTML 属性可以帮助你为网站打下坚实的基础,并使你的网站更美观、更易于使用。 HTML 属性包括...
    99+
    2024-02-26
    HTML 属性、HTML 元素、网站设计、SEO、前端开发
  • java中给实体对象属性的空值赋默认值
    目录给实体对象属性的空值赋默认值给实体类赋默认值通用方法给实体对象属性的空值赋默认值 private final String defaultStr = ""; private fi...
    99+
    2024-04-02
  • Java 用反射设置对象的属性值实例详解
    Java 用反射设置对象的属性值实例详解private Object invoke(Object obj, String fieldName, Object value) { String firstWord = fieldName.su...
    99+
    2023-05-31
    java 反射 对象
  • Spring Bean实例过程中使用反射和递归处理的Bean属性填充问题
    这篇文章将为大家详细讲解有关Spring Bean实例过程中使用反射和递归处理的Bean属性填充问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言超卖、掉单、幂等,你的程序总是不抗揍!想想,运营已...
    99+
    2023-06-15
  • java中Class类的基础知识点及实例
    1、说明 Class本身也是一个类。 Class对象只能由系统确定。 JVM中只有一个Class实例可以加载一个类。 Class对应于JVM中加载的.class文件。 每一类的实例都...
    99+
    2024-04-02
  • 关于Spring Bean实例过程中使用反射和递归处理的Bean属性填充问题
    目录一、前言二、目标三、设计四、实现五、测试六、总结一、前言 超卖、掉单、幂等,你的程序总是不抗揍! 想想,运营已经对外宣传了七八天的活动,满心欢喜的等着最后一天页面上线对外了,突然...
    99+
    2024-04-02
  • 把Python嵌入C++中类的成员属性的实例分析
    本篇文章给大家分享的是有关把Python嵌入C++中类的成员属性的实例分析 ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在C++中类的相关成员能使用关键字去声明为不一样的属性...
    99+
    2023-06-17
  • 夯实Java基础系列10:深入理解Java中的异常体系
    本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h3pl/Java-Tutorial喜欢的话麻烦点下Star哈文章首发于我的个人博客:www.how2pla...
    99+
    2023-06-02
  • 以实例为基础,探索Golang中多态特性的学习方法
    通过实例学习Golang中的多态特性 多态是面向对象编程中的一个重要概念,它允许我们使用统一的接口来处理不同类型的对象。在Golang中,多态是通过接口来实现的。接口定义了对象的行为,而不关心对象的具体类型。...
    99+
    2024-01-29
    学习 实例 多态特性
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作