通过反射判断对象的属性值是否为空

问题产生场景?

在项目开发过程中我采用了表单内部嵌套列表的形式提交数据,将表单于列表数据同时提交保存。   有时候管理人的出资人结构我新增了多条  这时候并没有真正的保存到数据库,而是保存在了页面前端临时保存等待真正的提交  我操作删除 这时候删除实现的方式是

function delFundManage(obj){    $(obj).parent().parent().remove();}

移除了 但是在创建列表的时候

进行移除第一个

arr[1]  这里并没有将修改为arr[0] 这里提交到后台后出现  由于下表为1 所以出现了两条数据  这条空数据不应该存在所以需要判断当前对象属性值是否全部为空

进入主题 实现判断对象的属性值是否为空  采用反射的思想:

    private boolean checkObjFiledsIsNull(Object obj) {
        boolean flag = false;
        int count = 0;
        Class<?> clazz = obj.getClass();
        Field[] fields = clazz.getDeclaredFields();
        for (Field field:fields) {
            field.setAccessible(true);
            try{
                if(field.get(obj)==null){
                    count++;
                    if(count == fields.length){
                        flag=true;
                    }
                }
            }catch (Exception e){
                logger.error("对象属性检查异常:"+e);
            }
        }
        return flag;
    }

这里设计到了获取属性集合的方式 getFields() 与 getDeclaredFields()两者的区别:

getField() 获取类中public修饰的属性

getDeclaredFields()获取的所有不包括继承属性

当对私有熟悉操作时采用setAccessible(true) 方法进行擦除  我习惯叫暴力破解

原文地址:https://www.cnblogs.com/lwdmaib/p/9851647.html

时间: 2024-07-29 04:55:18

通过反射判断对象的属性值是否为空的相关文章

java中判断对象中属性值是否为空的函数

public boolean checkObjFieldIsNull(Object obj) throws IllegalAccessException { boolean flag = false; for(Field f : obj.getClass().getDeclaredFields()){ f.setAccessible(true); log.info(f.getName()); if(f.get(obj) == null){ flag = true; return flag; }

java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI. 为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1.前端选中行导出:2.当前页导出:3.当前过滤条件导出. 想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能. ...... 好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时所需要,根据属性名去查找对象和子对象,找到对应属性值,抓取回来放到Excel中. 直接上代码

反射获取对象的属性值

1 > bean 对象 package com.whbs.bean; public class UserBean { private Integer id ; private int age ; private String name ; private String address ; public UserBean(){ System. out .println( " 实例化 " ); } public Integer getId() { return id ; } publ

判断对象的属性值是否为null

核心处理: private Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + fieldName.substring(1); Method method = o.getClass().getMethod(gette

【java】【反射】反射实现判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更

java的反射实现: 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 今日份代码: package com.sxd.streamTest; import java.lang.reflect.Field; import java.util.*; /** * @ClassName Test * @Description 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 * @Author sxd

利用反射机制,对对象的属性值进行自动设置

import java.lang.reflect.Method; /** * 对象的属性值自动设置,利用反射机制 */ public class AutoSet { /** * 将源对象的属性值赋值到目标对象,属性名一致,且源对象有get方法,目标对象有set方法 * @param src 源对象 * @param target 目标对象 * @return 赋值后的目标对象 */ public static Object autoGetterAndSetter(Object src, Obje

java利用反射机制判断对象的属性是否为空

java利用反射机制判断对象的属性是否为空: Map<String,String> validateMap = new LinkedHashMap<String, String>(); validateMap.put("serial", "编号");validateMap.put("major", "专业"); public static <T> String validateFiledIs

java 反射实现不同对象相同属性值复制

1.此方法会过滤final字段 2.此方法会过滤对象字段 3.此方法会兼容同对象之间.不同对象之间属性值复制 package com.bin.design.util; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Arrays; import java.util.List; import com.bin.des

用反射写的取属性值和设置属性值得方法

1 package com.lovo.util; 2 3 import java.lang.reflect.Constructor; 4 import java.lang.reflect.Field; 5 6 public class MyUtil { 7 private MyUtil(){ 8 throw new AssertionError(); 9 } 10 /** 11 * 通过反射获取对象的字段值 12 * @param target 目标对象 13 * @param fieldNam