Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java bean转map

作者:最终一次颓废   发布日期:2026-02-03   浏览:38

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

public class BeanToMapExample {

    public static Map<String, Object> convertBeanToMap(Object bean) {
        Map<String, Object> map = new HashMap<>();
        try {
            // 获取类的Bean信息
            BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass());
            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

            for (PropertyDescriptor descriptor : propertyDescriptors) {
                String propertyName = descriptor.getName();
                // 获取getter方法
                Method getterMethod = descriptor.getReadMethod();
                if (getterMethod != null) {
                    // 调用getter方法获取属性值
                    Object propertyValue = getterMethod.invoke(bean);
                    map.put(propertyName, propertyValue);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }

    public static void main(String[] args) {
        // 示例Java Bean
        class Person {
            private String name;
            private int age;

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }

            public int getAge() {
                return age;
            }

            public void setAge(int age) {
                this.age = age;
            }
        }

        Person person = new Person();
        person.setName("John");
        person.setAge(30);

        // 将Java Bean转换为Map
        Map<String, Object> personMap = convertBeanToMap(person);
        System.out.println(personMap);  // 输出: {name=John, age=30, class=class BeanToMapExample$1Person}
    }
}

解释说明

  1. convertBeanToMap 方法:

    • 该方法接收一个Java Bean对象作为参数,并返回一个包含该对象所有属性及其值的Map<String, Object>
    • 使用Introspector.getBeanInfo()获取Bean的所有属性描述符(PropertyDescriptor),然后通过反射调用每个属性的getter方法,将属性名和属性值存入Map中。
  2. 示例代码:

    • 定义了一个简单的Person类,包含两个属性:nameage
    • 创建一个Person对象并设置其属性值。
    • 调用convertBeanToMap方法将Person对象转换为Map,并打印结果。
  3. 注意事项:

    • Introspector.getBeanInfo()会返回所有继承自Object类的方法,因此Map中会包含一个名为class的键,其值为对象的类类型。如果不需要这个键,可以在循环中过滤掉它。

上一篇:java https请求

下一篇:java bigdecimal 乘法

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站