Java实体类属性的循环赋值

这篇博客探讨了两种Java实体类属性赋值的方法。常规方法利用反射遍历属性,通过首字母大写和'set'组合调用setter方法。另一种创新方式是在实体类中增加一个Object数组和相关构造器,简化赋值过程,避免因类型不同而单独处理的复杂性。这种方法在处理数据库取值到实体类时尤其方便。
摘要由CSDN通过智能技术生成

常规向:

通过反射的操作,先循环遍历实体类中的全部属性,再通过字符串拼接方法将首字母改为大写并与"set"合并,通过invoke方法进行赋值

代码如下

Test test=new Test();
        //给test对象赋值
        for(int i=0;i<f.length;i++){
            //获取属相名
            String attributeName=f[i].getName();
            //将属性名的首字母变为大写,为执行set/get方法做准备
            String methodName=attributeName.substring(0,1).toUpperCase()+attributeName.substring(1);
            try{
                //获取Test类当前属性的setXXX方法(私有和公有方法)
                /*Method setMethod=Test.class.getDeclaredMethod("set"+methodName);*/
                //获取Test类当前属性的setXXX方法(只能获取公有方法)
                Method setMethod=Test.class.getMethod("set"+methodName,String.class);
                //执行该set方法
                setMethod.invoke(test,attributeName+"方法赋值");
            }catch (NoSuchMethodException e) {
                try {
                    Method setMethod=Test.class.getMethod("set"+methodName,int.class);
                    setMethod.invoke(test,123);
                } catch (Exception e2) {
                    f[i].set(test,attributeName+"直接赋值");
                }

            }

        }  

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值