软件编程
位置:首页>> 软件编程>> java编程>> Java 判断实体对象及所有属性是否为空的操作

Java 判断实体对象及所有属性是否为空的操作

作者:春风化作秋雨  发布时间:2022-12-06 14:32:07 

标签:Java,实体对象,属性,为空

1、判断实体对象是否为空

2、判断对象所有属性是否为空

3、特别注意,实体类中如果有基本数据类型,会影响判断


package com.liuxd.object;
import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field;

/**
* Created by Liuxd on 2018/11/2.
*/
public class TestEntity {

public static void main(String[] args) {
User user1 = new User("Jack", "male", 17);
User user2 = new User();

boolean u1Flag = checkObjAllFieldsIsNull(user1);
boolean u2Flag = checkObjAllFieldsIsNull(user2);

System.out.println("user1 是否为空:" + u1Flag);
System.out.println("user2 是否为空:" + u2Flag);
}

/**
* 判断对象中属性值是否全为空
*
* @param object
* @return
*/
public static boolean checkObjAllFieldsIsNull(Object object) {
if (null == object) {
 return true;
}

try {
 for (Field f : object.getClass().getDeclaredFields()) {
 f.setAccessible(true);

System.out.print(f.getName() + ":");
 System.out.println(f.get(object));

if (f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) {
  return false;
 }

}
} catch (Exception e) {
 e.printStackTrace();
}

return true;
}
}

实体类:


package com.liuxd.object;

/**
* Created by Liuxd on 2018/11/2.
*/
public class User {
private String name;
private String gender;

/**
* 如果属性类型为基本数据类型,则会有默认值
* 影响正确判断,请特别注意
*/
// private int age;
private Integer age;
public User() {
}

public User(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getGender() {
return gender;
}

public void setGender(String gender) {
this.gender = gender;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}
}

输出结果:


name:Jack
name:null
gender:null
age:null
user1 是否为空:false
user2 是否为空:true

补充知识:Java判断一个实体类对象实例的所有成员变量是否为空

看代码吧~


/**
*判断一个实体类对象实例的所有成员变量是否为空
*@param obj 校验的类对象实例
*@return List
*@throws Exception
*/

public static List<String> isObjectFieldEmpty(Object obj) throws Exception {
Class<?> clazz=obj.getClass(); //得到类对象
Field[] fs=clazz.getDeclareFields(); //得到属性集合
List<String> list=new ArrayList<String>();
for(Field field:fs){      //遍历属性
  field.setAccessible(true); //设置属性是可以访问的(私有的也可以)
  if(field.get(obj)==null||field.get(obj)==""||"null".equalsIngnoreCase(String)field.get(obj))){
 String name=(String)field.getName();
 list.add(name);
 }
}
return list;
}

来源:https://adong.blog.csdn.net/article/details/83662333

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com