Java 判断实体对象及所有属性是否为空的操作
作者:春风化作秋雨 时间:2022-12-06 14:32:07
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
标签:Java,实体对象,属性,为空
0
投稿
猜你喜欢
Android 文件操作方法
2023-06-02 12:51:17
Groovy编程入门攻略
2022-12-05 13:35:47
Adapter模式实战之重构鸿洋集团的Android圆形菜单建行
2021-11-02 09:42:32
C#利用System.Threading.Thread.Sleep即时输出信息的详解
2021-07-08 02:35:15
浅谈java 执行jar包中的main方法
2022-06-28 07:58:27
详解C#通过反射获取对象的几种方式比较
2021-07-26 17:45:55
Spring自定义参数解析器代码实例
2023-07-02 15:08:06
Java源码解析HashMap的keySet()方法
2023-11-11 06:33:05
Spring boot动态修改日志级别的方法
2023-04-04 09:36:00
springboot如何读取配置文件到静态工具类
2023-11-28 04:44:54
java项目中的绝对路径和相对路径用法说明
2023-11-27 22:08:44
解决IDEA无法下载maven依赖的问题
2023-12-05 17:06:59
Mybatis Trim标签用法简单介绍
2021-10-11 03:04:00
JAVA发送HTTP请求,返回HTTP响应内容,应用及实例代码
2022-11-21 07:42:03
Java实现文件和base64流的相互转换功能示例
2023-11-18 07:45:01
spring boot使用拦截器修改请求URL域名 换 IP 访问的方法
2022-08-21 20:15:53
Java使用IO流实现音频的剪切和拼接
2023-09-11 08:47:46
C# DataSet的内容写成XML时如何格式化字段数据
2023-04-14 09:01:28
c语言动态数组示例
2023-11-02 22:56:44
C#使用TextBox作数据输入方法
2023-11-16 22:26:14