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;
}

以上这篇Java 判断实体对象及所有属性是否为空的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java判断对象是否为空(包括null ,"")的方法

    本文实例为大家分享了Java判断对象是否为空的具体代码,供大家参考,具体内容如下 package com.gj5u.publics.util; import java.util.List; /** * 判断对象是否为空 * * @author Rex * */ public class EmptyUtil { /** * 判断对象为空 * * @param obj * 对象名 * @return 是否为空 */ @SuppressWarnings("rawtypes") public

  • Java中判断对象是否为空的方法的详解

    首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的: 另一种是org.springframework.util包下的.这两种StringUtils工具类判断对象是否为空是有差距的: StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判断是否为空的方法参数是字符序列类,也就是String类型 StringUtils.isEmpt

  • java判断字符串String是否为空问题浅析

    一.判断一个字符串str不为空的方法有: 1.str == null;2."".equals(str);3.str.length <= 0;4.str.isEmpty();注意:length是属性,一般集合类对象拥有的属性,取得集合的大小.            例如:数组.length就是取得数组的长度.          length()是方法,一般字符串类对象有该方法,也是取得字符串长度.            例如:字符串.length();说明:  1.null表示这个

  • java 利用反射机制,获取实体所有属性和方法,并对属性赋值

    一个普通的实体Person: private int id; private String name; private Date createdTime; ... //其它字段 // get set方法 ............... 现在需要把通过webService传过来的实体Person里面的所有字段的null值,换成"" 实现思路: 1.获取实体的所有字段,遍历 2.获取字段类型 3.调用字段的get方法,判断字段值是否为空 4.如果字段值为空,调用字段的set方法,为字段赋值

  • 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(St

  • Java 判断线程池所有任务是否执行完毕的操作

    我就废话不多说了,大家还是直接看代码吧~ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Test { public static void main(String args[]) throws InterruptedException { ExecutorService exe = Executors.newFixedThreadPool(3); f

  • java创建子类对象设置并调用父类的变量操作

    通过子类调用父类的变量,有两种方法: 1.把父类的变量设置成public: package triangle.opengl.wlz.stu.childusefathervariable; import android.util.Log; public class BasePublicVariable { private String TAG = getClass().getName(); public int data; public void ptData(){ Log.d(TAG, "ptD

  • java中给实体对象属性的空值赋默认值

    目录 给实体对象属性的空值赋默认值 给实体类赋默认值通用方法 给实体对象属性的空值赋默认值 private final String defaultStr = ""; private final Date defaultDate = new Date(); private final BigDecimal defaultDecimal = new BigDecimal(0); private final Timestamp defaultTimestamp=new Timestamp(

  • java 判断两个对象是否为同一个对象实例代码

    java 判断两个对象是否为同一个对象 用"=="比较的是引用的地址,用equals比较的就是值.那我们new两个相同的对象什么属性都一样,为什么编译的时候不相同,这是因为我们调用的是父类也就是Object的equals方法,这里我们就需要重写这个equals方法. public class Test5 { public static void main(String[] args) { User mUser1 = new User("zhangsan", &quo

  • Java利用反射自动封装成实体对象的方法

    本文实例讲述了Java利用反射自动封装成实体对象的方法.分享给大家供大家参考.具体分析如下: 利用此方法的时候需要传递的参数的名称,必须以行号结尾,去掉行号就是属性名称,比如页面传递name+rowNo,那么实体对象的属性名应该为name.代码如下 复制代码 代码如下: //获取页面数据,自动封装成bean对象 public List getObjectList(Class clazz,String[] rowNos) throws Exception{         List objList

  • java中实体类和JSON对象之间相互转化

    在需要用到JSON对象封装数据的时候,往往会写很多代码,也有很多复制粘贴,为了用POJO的思想我们可以装JSON转化为实体对象进行操作 package myUtil; import java.io.IOException; import myProject.Student; import myProject.StudentList; import org.codehaus.jackson.map.ObjectMapper; import org.json.JSONArray; import or

  • 浅谈Java实体对象的三种状态以及转换关系

    最新的Hibernate文档中为Hibernate对象定义了四种状态(原来是三种状态,面试的时候基本上问的也是三种状态),分别是:瞬时态(new, or transient).持久态(managed, or persistent).游状态(detached)和移除态(removed,以前Hibernate文档中定义的三种状态中没有移除态),如下图所示,就以前的Hibernate文档中移除态被视为是瞬时态. 瞬时态:当new一个实体对象后,这个对象处于瞬时态,即这个对象只是一个保存临时数据的内存区

  • java实体对象与Map之间的转换工具类代码实例

    这篇文章主要介绍了java实体对象与Map之间的转换工具类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Map接口中键和值一一映射. 可以通过键来获取值. 给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值. 当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常. 当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常

随机推荐