精华内容
下载资源
问答
  • 主要介绍了Java判断对象是否为空(包括null ,"")的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • java 判断对象是否为空

    万次阅读 2014-04-26 11:25:02
    java 中如何判断对象是否为空呢,特别是一个weizhi

    java 中如何判断对象是否为空呢,特别是一个未知的对象?

    下面是一个通用的方法,判断字符串是否为空,集合是否为空,数组是否为空:

    /**
    	 * 判断对象或对象数组中每一个对象是否为空: 对象为null,字符序列长度为0,集合类、Map为empty
    	 * 
    	 * @param obj
    	 * @return
    	 */
    	public static boolean isNullOrEmpty(Object obj) {
    		if (obj == null)
    			return true;
    
    		if (obj instanceof CharSequence)
    			return ((CharSequence) obj).length() == 0;
    
    		if (obj instanceof Collection)
    			return ((Collection) obj).isEmpty();
    
    		if (obj instanceof Map)
    			return ((Map) obj).isEmpty();
    
    		if (obj instanceof Object[]) {
    			Object[] object = (Object[]) obj;
    			if (object.length == 0) {
    				return true;
    			}
    			boolean empty = true;
    			for (int i = 0; i < object.length; i++) {
    				if (!isNullOrEmpty(object[i])) {
    					empty = false;
    					break;
    				}
    			}
    			return empty;
    		}
    		
    		return false;
    	}

    上述方法运用了递归,当对象是数组时又调用自身.

    测试:

    @Test
    	public void test_isNullOrEmpty(){
    		String input1=null;
    		String input3="";
    		String input4=" ";
    		String input5="a";
    		String input6="   ";
    		String[] strs1 = new String[] { "a" };
    		String[] strs2 = new String[] { "", "" };
    		String[] strs3 = new String[] { "", "c" };
    		String[] strs4 = new String[] {};
    		org.junit.Assert.assertEquals(true, ValueWidget.isNullOrEmpty(input1));
    		org.junit.Assert.assertEquals(true, ValueWidget.isNullOrEmpty(input3));
    		org.junit.Assert.assertEquals(false, ValueWidget.isNullOrEmpty(input4));
    		org.junit.Assert.assertEquals(false, ValueWidget.isNullOrEmpty(input5));
    		org.junit.Assert.assertEquals(false, ValueWidget.isNullOrEmpty(input6));
    		
    		org.junit.Assert.assertEquals(false, ValueWidget.isNullOrEmpty(strs1));
    		org.junit.Assert.assertEquals(true, ValueWidget.isNullOrEmpty(strs2));
    		org.junit.Assert.assertEquals(false, ValueWidget.isNullOrEmpty(strs3));
    		org.junit.Assert.assertEquals(true, ValueWidget.isNullOrEmpty(strs4));
    	}

    那么如何判断一个自定义对象属性是否全为空呢?(这里只考虑对象的属性全为基本类型)?

    代码如下:

    /***
    	 * Determine whether the object's fields are empty
    	 * 
    	 * @param obj
    	 * @param isExcludeZero  :true:数值类型的值为0,则当做为空;----false:数值类型的值为0,则不为空
    	 * 
    	 * @return
    	 * @throws SecurityException
    	 * @throws IllegalArgumentException
    	 * @throws NoSuchFieldException
    	 * @throws IllegalAccessException
    	 */
    	public static boolean isNullObject(Object obj, boolean isExcludeZero)
    			throws SecurityException, IllegalArgumentException,
    			NoSuchFieldException, IllegalAccessException {
    		List<Field> fieldList = ReflectHWUtils.getAllFieldList(obj.getClass());
    		boolean isNull = true;
    		for (int i = 0; i < fieldList.size(); i++) {
    			Field f = fieldList.get(i);
    			Object propertyValue = null;
    			try {
    				propertyValue = getObjectValue(obj, f);
    			} catch (NoSuchFieldException e) {
    				e.printStackTrace();
    			}
    
    			if (!ValueWidget.isNullOrEmpty(propertyValue)) {// 字段不为空
    				if (propertyValue instanceof Integer) {// 是数字
    					if (!((Integer) propertyValue == 0 && isExcludeZero)) {
    						isNull = false;
    						break;
    					}
    				} else if (propertyValue instanceof Double) {// 是数字
    					if (!((Double) propertyValue == 0 && isExcludeZero)) {
    						isNull = false;
    						break;
    					}
    				}else if (propertyValue instanceof Float) {// 是数字
    					if (!((Float) propertyValue == 0 && isExcludeZero)) {
    						isNull = false;
    						break;
    					}
    				}else if (propertyValue instanceof Short) {// 是数字
    					if (!((Short) propertyValue == 0 && isExcludeZero)) {
    						isNull = false;
    						break;
    					}
    				}else {
    					isNull = false;
    					break;
    				}
    			}
    		}
    		return isNull;
    	}
    
    ValueWidget.isNullOrEmpty 的类com.string.widget.util.ValueWidget.ValueWidget:见 

    http://download.csdn.net/detail/hw1287789687/7255307
    测试:

    package com.test.bean;
    
    import java.sql.Timestamp;
    
    public class Person2 {
    	private int id;
    	private int age;
    	private double weight;
    	private String personName;
    	private Timestamp birthdate;
    	public String identitify;
    	protected String address;
    	String phone;
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public String getPersonName() {
    		return personName;
    	}
    	public void setPersonName(String personName) {
    		this.personName = personName;
    	}
    	public Timestamp getBirthdate() {
    		return birthdate;
    	}
    	public void setBirthdate(Timestamp birthdate) {
    		this.birthdate = birthdate;
    	}
    	public String getIdentitify() {
    		return identitify;
    	}
    	public void setIdentitify(String identitify) {
    		this.identitify = identitify;
    	}
    	public String getAddress() {
    		return address;
    	}
    	public void setAddress(String address) {
    		this.address = address;
    	}
    	public String getPhone() {
    		return phone;
    	}
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    	public double getWeight() {
    		return weight;
    	}
    	public void setWeight(double weight) {
    		this.weight = weight;
    	}
    	
    	
    }
    
    @Test
    	public void test_isNullObject() throws SecurityException,
    			IllegalArgumentException, NoSuchFieldException,
    			IllegalAccessException {
    		Person2 p = new Person2();
    		Assert.assertEquals(true, ReflectHWUtils.isNullObject(p, true));
    		Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, false));
    
    		p.setAddress("beijing");
    		Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, true));
    		Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, false));
    
    		p.setAddress(null);
    		p.setId(0);
    		Assert.assertEquals(true, ReflectHWUtils.isNullObject(p, true));
    		Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, false));
    
    	}
    参考:http://hw1287789687.iteye.com/blog/1936364
    项目代码下载地址:

    http://download.csdn.net/detail/hw1287789687/7255307
    .





    展开全文
  • java对象判断是否为空工具类

    万次阅读 2017-12-08 18:26:57
    import java.util.List; import java.util.Map; import com.google.common.collect.Maps; /** * * 工具类 * * @version 1.0 * @since JDK1.7 */ public class ObjectUtils { /** *
    package common;
    
    import java.util.List;
    import java.util.Map;
    
    import com.google.common.collect.Maps;
    
    
    /**
     * 
     * 工具类
     * 
     * @version 1.0
     * @since JDK1.7
     */
    public class ObjectUtils {
    
    
    	/**
    	 * 
    	 * 方法描述 封装返回结果集
    	 *
    	 * @param code
    	 * @param msg
    	 */
    	public static Map<String, Object> getReturnResult(Integer code, String msg){
    		Map<String, Object> map = Maps.newHashMap();
    		map.put("code", code);
    		map.put("msg", msg);
    		return map;
    	}
    	/**
    	 * 
    	 * 方法描述 封装返回结果集 多加一个key--value
    	 *
    	 * @param code
    	 * @param msg
    	 * @param paramName
    	 * @param paramValue
    	 * @return
    	 */
    	public static Map<String, Object> getReturnResult(Integer code, String msg, String paramName, Object paramValue){
    		Map<String, Object> map = Maps.newHashMap();
    		map.put("code", code);
    		map.put(paramName, paramValue);
    		map.put("msg", msg);
    		return map;
    	}
    	/**
    	 * 
    	 * 方法描述 如果对象为非空返回true 否则返回false
    	 *
    	 * @param obj
    	 * @return
    	 */
    	public static boolean isNotNull(Object obj) {
    		if(obj != null) {
    			return true;
    		}
    		return false;
    	}
    	/**
    	 * 
    	 * 方法描述 如果对象为空返回 true 否则返回false
    	 *
    	 * @param obj
    	 * @return
    	 */
    	public static boolean isNull(Object obj) {
    		if(obj != null) {
    			return false;
    		}
    		return true;
    	}
    	/**
    	 * 
    	 * 方法描述 判断Map集合非null 非空 返回true 否则返回false
    	 *
    	 * @param list
    	 * @return
    	 */
    	public static boolean isNotNull(Map<Object, Object> map){
    		if(map != null && !map.isEmpty()) {
    			return true;
    		}
    		return false;
    	}
    	/**
    	 * 
    	 * 方法描述 判断Map集合是null或者空 返回true 否则返回false
    	 *
    	 * @param list
    	 * @return
    	 */
    	public static boolean isNull(Map<Object, Object> map){
    		if(map == null || map.isEmpty()) {
    			return true;
    		}
    		return false;
    	}
    	/**
    	 * 
    	 * 方法描述 判断Map集合非null 非空 返回true 否则返回false
    	 *
    	 * @param list
    	 * @return
    	 */
    	public static boolean isNotNull(List<Object> list){
    		if(list != null && !list.isEmpty()) {
    			return true;
    		}
    		return false;
    	}
    	/**
    	 * 
    	 * 方法描述 判断Map集合是null或者空 返回true 否则返回false
    	 *
    	 * @param list
    	 * @return
    	 */
    	public static boolean isNull(List<Object> list){
    		if(list == null || list.isEmpty()) {
    			return true;
    		}
    		return false;
    	}
    }
    

    展开全文
  • Java判断对象是否为空方法

    千次阅读 2018-06-13 19:24:52
    首先来看一下工具StringUtils的判断方法: 一种是org.apache....这两种StringUtils工具类判断对象是否为空是有差距的: StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils...
    • 首先来看一下工具StringUtils的判断方法: 
      一种是org.apache.commons.lang3包下的; 
      另一种是org.springframework.util包下的。这两种StringUtils工具类判断对象是否为空是有差距的:
    
    StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判断是否为空的方法参数是字符序列类,也就是String类型
    
    StringUtils.isEmpty(Object str); //而org.springframework.util包下的参数是Object类,也就是不仅仅能判断String类型,还能判断其他类型,比如Long等类型。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    从上面的例子可以看出第二种的StringUtils类更实用。

    下面来看一下org.apache.commons.lang3的StringUtils.isEmpty(CharSequence cs)源码:

    public static boolean isEmpty(final CharSequence cs) {
            return cs == null || cs.length() == 0;
    }
    • 1
    • 2
    • 3

    接下来是org.springframework.util的StringUtils.isEmpty(Object str)源码:

    public static boolean isEmpty(Object str) {
            return (str == null || "".equals(str));
    }
    • 1
    • 2
    • 3

    基本上判断对象是否为空,StringUtils.isEmpty(Object str)这个方法都能搞定。

    • 接下来就是判断数组是否为空
    list.isEmpty(); //返回boolean类型。
    展开全文
  • Java 判断String对象是否为空方法

    千次阅读 2018-06-09 08:47:42
    String对象中有一个isEmpty的方法判断是否为空,其实isEmpty完全等同于string.length()==0,注意如果String本身是null,那么使用string.isEmpty()会报指针异常(NullPointerException)判断一个String为空的最安全...

    Java原生的方法:

    String对象中有一个isEmpty的方法判断是否为空,其实isEmpty完全等同于string.length()==0,注意如果String本身是null,那么使用string.isEmpty()会报空指针异常(NullPointerException)判断一个String为空的最安全的方法,还是string ==null || string.isEmpty()

    工具StringUtils的判断方法: 

    一种是org.apache.commons.lang3包下的; 

    另一种是org.springframework.util包下的。这两种StringUtils工具类判断对象是否为空是有差距的:

    StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判断是否为空的方法参数是字符序列类,也就是String类型
    StringUtils.isEmpty(Object str); //而org.springframework.util包下的参数是Object类,也就是不仅仅能判断String类型,还能判断其他类型,比如Long等类型。

    从上面的例子可以看出第二种的StringUtils类更实用。

    下面来看一下org.apache.commons.lang3的StringUtils.isEmpty(CharSequence cs)源码:

    public static boolean isEmpty(final CharSequence cs) {
            return cs == null || cs.length() == 0;
    }

    接下来是org.springframework.util的StringUtils.isEmpty(Object str)源码:

    public static boolean isEmpty(Object str) {
            return (str == null || "".equals(str));
    }

    基本上判断对象是否为空,StringUtils.isEmpty(Object str)这个方法都能搞定。

    展开全文
  • public boolean isEmpty() { return value.length == 0; }
  • Java判断是否为空方法

    千次阅读 2019-08-23 17:44:00
    1、判断字符串或者对象是否为空 首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的; 另一种是org.springframework.util包下的。这两种StringUtils工具类判断对象是否为空是有差距...
  • java集合判断是否为空方法

    千次阅读 2019-01-17 13:27:58
    1、List null == list与list. isEmpty 与list.size() == 0 的区别 首先list. ...判断list是否为空应该用 if(null == list && list.isEmpty()) Map和Set同理 新手入坑java,继续学习中。。。
  • java判断是否为空工具类判断为空

    千次阅读 2019-07-10 10:47:48
    package brilliance.znjt.serviceratingservice.utils; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; ... * 对象是否为空 * @param obj St...
  • java 判断一个对象是否为空对象

    千次阅读 2020-03-30 22:29:29
    最近项目中遇到一个问题,在用户没填数据的时候,我们需要接收从前端传过来的对象为null,但是前端说他们一个一个判断特别麻烦,只能传个空对象过来,我第一个想法就是可以通过反射来判断对象是否为空。 第一版: ...
  • Java 各种数据类型判断是否为空或者null方法 开发中经常对各种数据进行判断是否为空或者null 对数据进行校验 最近开发中经常老是使用各种方式进行判断,这里就对常见的数据类型判断方法进行一个统计汇总,如果...
  • package Test;import java.awt.List;import java.lang.reflect.Array;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.HashMap;import java.util.Hashtable;import j
  • Java判断对象是否为空

    万次阅读 2018-05-30 10:23:33
    org.apache.commons.lang3包下的StringUtils类,判断是否为空方法参数是字符序列类,也就是String类型StringUtils.isEmpty(Object str);   org.springframework.util 包下 的参数是Object类,也就是不仅仅能判断...
  • Java判断一个对象属性是否为空

    万次阅读 2017-05-18 14:54:46
    就是在服务端在返回数据结构时,有些字段有时返回有时不返回(根据字段值来决定);但客户端会用到这些字段当没有返回时就会报指针异常。... if (f.get(obj) == null) { //判断字段是否为空,并且对象
  • java判断对象中属性值是否为空

    万次阅读 2017-02-17 08:57:07
    最近遇到后台接收值的时候,需要对接收对象进行非空校验,第一时间想到的就是写一堆的if判断,但是仔细想了想,如果字段的属性太多,需要写大量的if判断,并且方法也不能够重用,所以,就搜索了相关资料看看有没有...
  • Java 判断一个对象中某一个属性是否为空 每次写博客都不知道咋开头…算了^_^ 直接说问题吧。就是验证一个对象中的一个属性的值是否为空。 自己在网上也找到了很多大神给的答案,有看到利用反射机制 public ...
  • Java判断string是否为空的几种方法

    千次阅读 2019-08-01 16:52:16
    方法一:是我所知道的效率的最高的,也是最常用的方法。...方法三:是使用一种方法判断,看上去很高端的样子,效率不明。 if(StringUtils.isBlank(s)) 方法四:是在Java SE 6.0 才提供的一个方...
  • 1、判断实体对象是否为空 2、判断对象所有属性是否为空 3、特别注意,实体类中如果有基本数据类型,会影响判断 package com.liuxd.object; import org.apache.commons.lang3.StringUtils; import java.lang....
  • freemarker判断对象是否为空方法

    万次阅读 2017-02-14 18:31:04
    它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。 freemarker中显示某对象使用${name}. 但如果namenull,freemarker就会报错。如果需要判断对象是否为空: ? 1 2 3
  • JAVA中 fastjson判断JSONObject是否为空 package com.map; import com.alibaba.fastjson.JSONObject; /** * 判断JSONObject是否为空 * @author luolei * @date 2019年2月14日 */ public class FastJSONTest ...
  • Java判断字符串是否为空

    万次阅读 2018-04-13 10:56:42
    思路:判断某字符串是否为空为空的标准是str==null或str.length()==0一.字符串与null区别1、类型null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 778,436
精华内容 311,374
关键字:

java对象判断是否为空的方法

java 订阅