云迈博客

您现在的位置是:首页 > 后端开发 > Java > 正文

Java

Java实体类循环操作

游荡2020-08-27Java371
Java实体类循环操作有时候咱们会遇到一些需求,需要循环实体类的字段来进行一些数据操作这个时候我们就要用到java的反射先看代码实体类:TestUser.java```@Data@NoAr

Java实体类循环操作

有时候咱们会遇到一些需求,需要循环实体类的字段来进行一些数据操作

这个时候我们就要用到java的反射

先看代码

实体类:TestUser.java

@Data
@NoArgsConstructor
@AllArgsConstructor
public class TestUser {
    private Long id;
    private String name;
    private String nickname;
    private Integer sex;
    private Integer age;
}

这里@Data,@NoArgsConstructor,@AllArgsConstructor是lombok的注解偷懒专用,如果不熟悉lombok可以看我这篇文章

然后如下:

public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
        TestUser testUser = new TestUser();
        testUser.setId(1L);
        testUser.setName("大黄");
        testUser.setNickname("云迈科技-java开发");
        testUser.setAge(12);
        testUser.setSex(12);

        Field[] fields = testUser.getClass().getDeclaredFields();
        for (Field field : fields){
            //取消java语言访问检查,因为JDK的安全检查耗时较多,所以取消掉,加快速度
            field.setAccessible(true);
            //获取当前字段的key名
            String key = field.getName();

            //为字段key名第一个字符设置为大写
            String method = key.substring(0, 1).toUpperCase() + key.substring(1);
            Method me = null;
            try {
                //获取类的方法
                me = testUser.getClass().getDeclaredMethod("get" + method);
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            }
            //根据方法,来执行
            System.out.println(me.invoke(testUser));
        }
    }

很简单几个操作
先通过getDeclaredFields()获得某个类的所有声明的字段数组
然后开始for循环操作
就是这么简单

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~