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;
    }
posted @   好事的猫  阅读(583)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示