使用beanuti将bean属性转成map

今天沈宝问我一个将bean转成map的方法,一下子懵逼了。。。虽然不知道这样转想干啥,但是总感觉牛牛的样子。。。赶紧翻了下apache的common包,果然beantuils有这个功能,可以使用describe的方法

缺点和深浅复制一样,不能递归。直接上代码。

另外有个好的地方就是desciable转成map的时候会多一个class的属性,可以直接获取到当前bean的类

public class BeanTest extends BaseTest {


    @Test
    public void test() throws SQLException, IOException {
        Abean abean=new Abean();
        Abeans abeans=new Abeans();
        //apache-common:beanuitls--简单类型
        //testB:testemptyB
        //class:class com.alibaba.dt.op.onedata.BeanTest$Abean
        //testA:testemptyA
        try {
            Map beanMap=BeanUtils.describe(abean);
            for(Object key:beanMap.keySet()){
                System.out.println(key+":"+beanMap.get(key));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        //apache-common:beanuitls--复杂类型
        //abeanList:com.alibaba.dt.op.onedata.BeanTest$Abean@4b2c5e02
        //testC:testEmptyC
        //class:class com.alibaba.dt.op.onedata.BeanTest$Abeans
        try {
            Map beanMap=BeanUtils.describe(abeans);
            for(Object key:beanMap.keySet()){
                System.out.println(key+":"+beanMap.get(key));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        System.out.println("love u!");
    }

    public class Abean{
        String testA;
        String testB;

        public Abean(String testA, String testB) {
            this.testA = testA;
            this.testB = testB;
        }

        public Abean(){
            this.testA="testemptyA";
            this.testB="testemptyB";
        }

        public String getTestA() {
            return testA;
        }

        public void setTestA(String testA) {
            this.testA = testA;
        }

        public String getTestB() {
            return testB;
        }

        public void setTestB(String testB) {
            this.testB = testB;
        }
    }

    public class Abeans{
        List<Abean> abeanList;
        String testC;

        public Abeans() {
            this.testC="testEmptyC";
            List<Abean> abeanList=new ArrayList<Abean>();
            for(int i=0;i<3;i++){
                Abean abean=new Abean("testA"+i,"testB"+i);
               abeanList.add(abean);
            }
            this.abeanList = abeanList;
        }

        public List<Abean> getAbeanList() {
            return abeanList;
        }

        public void setAbeanList(List<Abean> abeanList) {
            this.abeanList = abeanList;
        }

        public String getTestC() {
            return testC;
        }

        public void setTestC(String testC) {
            this.testC = testC;
        }
    }

 

转载于:https://my.oschina.net/zimingforever/blog/994102

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值