首页 课程 师资 教程 报名

Java反射取值赋值

  • 2022-09-28 15:52:36
  • 2004次 动力节点

本文章向大家介绍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;
    }

 

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交