欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java对象转换成Map

程序员文章站 2024-02-01 13:48:22
需求总是千奇百怪,对象转成map,看似没必要,但就是有这个需求,所以记录下来 首先是Bean 然后是主要方法和测试类 输出 ......

需求总是千奇百怪,对象转成map,看似没必要,但就是有这个需求,所以记录下来

首先是bean

package tools;

import lombok.data;

/**
 * 车辆实体类
 */
@data
public class car {

    private string id;
    private string model;//型号
    private string color;//颜色
    private string volume;//排量
    private int year;//年份
}

然后是主要方法和测试类

package tools;

import java.lang.reflect.field;
import java.util.hashmap;
import java.util.map;

public class maptools {

    public static void main(string[] args) throws exception{
        car car = new car();
        car.setid("00000");
        car.setcolor("black");
        car.setmodel("bmw x5");
        car.setvolume("3.0l");
        car.setyear(2018);

        system.out.println(objecttomap(car));
    }

    /**
     * 将object对象里面的属性和值转化成map对象
     *
     * @param obj
     * @return
     * @throws illegalaccessexception
     */
    public static map<string, object> objecttomap(object obj) throws illegalaccessexception {
        map<string, object> map = new hashmap<string,object>();
        class<?> clazz = obj.getclass();
        for (field field : clazz.getdeclaredfields()) {
            field.setaccessible(true);
            string fieldname = field.getname();
            object value = stringutils.nvl(field.get(obj));
            map.put(fieldname, value);
        }
        return map;
    }
}

输出

{volume=3.0l, color=black, year=2018, model=bmw x5, id=00000}