专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java反射取值赋值

Java反射取值赋值

更新时间:2022-09-28 15:52:36 来源:动力节点 浏览1641次

本文章向大家介绍Java反射取值赋值,主要包括Java反射取值赋值使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

项目需求:需要对获取的数据每个字段值校验合法性,故想到用反射实现

    /**
     * 字段值校验
     *
     * @param r 需要校验的实体类
     * @param properties 自定义需要校验的属性
     * @return
     */
    private boolean verifyFields(RelatedRelation r, String[] properties) {
        boolean flag = true;
        Field[] fields = r.getClass().getDeclaredFields();
        try {
          	// 去空格后,重新赋值
            for (Field field : fields) {
                field.setAccessible(true);
                Object value = field.get(r);
                String typeName = field.getType().getName();
                if (StringUtils.equals(typeName, String.class.getTypeName()) && ObjectUtils.isNotEmpty(value)) {
                    String name = field.getName();
                    String v = ((String) value).trim();
                    Field f = r.getClass().getDeclaredField(name);
                    f.setAccessible(true);
                    f.set(r, v);
                }
            }
          // 判断属性是否为空或null
            for (String property : properties) {
                Field field = r.getClass().getDeclaredField(property);
                field.setAccessible(true);
                Object value = field.get(r);
                if (ObjectUtils.isEmpty(value)) {
                    field.set(r, "不能为空");
                    flag = false;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return flag;
    }

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>