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

首先来看一下工具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)这个方法都能搞定。

接下来就是判断数组是否为空

list.isEmpty(); //返回boolean类型。

判断集合是否为空

例1: 判断集合是否为空:

CollectionUtils.isEmpty(null): true
CollectionUtils.isEmpty(new ArrayList()): true
CollectionUtils.isEmpty({a,b}): false

例2:判断集合是否不为空:

CollectionUtils.isNotEmpty(null): false
CollectionUtils.isNotEmpty(new ArrayList()): false
CollectionUtils.isNotEmpty({a,b}): true

2个集合间的操作:
集合a: {1,2,3,3,4,5}
集合b: {3,4,4,5,6,7}

CollectionUtils.union(a, b)(并集): {1,2,3,3,4,4,5,6,7}
CollectionUtils.intersection(a, b)(交集): {3,4,5}
CollectionUtils.disjunction(a, b)(交集的补集): {1,2,3,4,6,7}
CollectionUtils.disjunction(b, a)(交集的补集): {1,2,3,4,6,7}
CollectionUtils.subtract(a, b)(A与B的差): {1,2,3}
CollectionUtils.subtract(b, a)(B与A的差): {4,6,7}

以上所述是小编给大家介绍的Java中判断对象是否为空的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Java对象类型的判断详解

    instanceof 判断某个对象是否是某个类的实例或者某个类的子类的实例.它的判断方式大概是这样的: public<T> boolean function(Object obj, Class<T> calzz) { if (obj == null) { return false; } try { T t = (T) obj; return true; } catch (ClassCastException e) { return false; } } Class.equals()

  • java 和 json 对象间转换

    1. json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, java arrays and XML等转换成JSON,或者反向转换的功能. 2. json-lib 主页 : http://json-lib.sourceforge.net/ 3.执行环境 需要以下类库支持 commons-lang 2.5commons-beanutils 1.8.0commons-collections 3.2.1commons-logging 1.1.1e

  • java中List对象排序通用方法

    本文实例讲述了java中List对象排序通用方法.分享给大家供大家参考.具体分析如下: 在数据库中查出来的列表list中,往往需要对不同的字段重新排序,一般的做法都是使用排序的字段,重新到数据库中查询.如果不到数据库查询,直接在第一次查出来的list中排序,无疑会提高系统的性能. 只要把第一次查出来的结果存放在session中,就可以对list重新排序了.一般对list排序可以使用Collections.sort(list),但如果list中包含是一个对象的话,这种方法还是行不通的.那要怎么排序

  • Java从数据库中读取Blob对象图片并显示的方法

    本文实例讲述了Java从数据库中读取Blob对象图片并显示的方法.分享给大家供大家参考.具体实现方法如下: 第一种方法: 大致方法就是,从数据库中读出Blob的流来,写到页面中去: 复制代码 代码如下: Connection conn = DBManager.getConnection();   String sql = "SELECT picture FROM teacher WHERE id=1";   PreparedStatement ps = null;   ResultSe

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

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

  • Java中判断对象是否相等的equals()方法使用教程

    Object类中的equals方法用于检测一个对象是否等于另一个对象.在Object类中,这个方法判断两个对象是否具有相同的引用,如果两个对象具有相同的引用,它们一定是相等的.从这点上看,将其作为默认操作也是合乎情理的.然而,对于多数类类说,这种判断并没有什么意义,例如,采用这种方式比较两个PrintStream是否相等就完全没有意义.然而,经常需要检测两个对象状态的相等性,如果两个对象的状态相等,就认为这两个对象是相等的.所以一般在自定义类中都要重写equals比较. 下面给出编写一个完美eq

  • java从list中取出对象并获得其属性值的方法

    最近公司的项目需要导出csv文件,一个同事用最原始的方式将每条记录取出然后加","解决.但是客户后面要求在每个页面当中都加入这个功能.于是,问题来了,分开写代码太多,合起来又不能确定在list中存储的对象为哪个对象,不能用get方法获得属性.我一直认为当初他那样写就将程序写死了.可是,在多次尝试后,还是通过java的反射从list中取出了对象,从对象中取出了属性值: 下面是代码: 复制代码 代码如下: package com.hb.test; import java.lang.refl

  • JAVA对象JSON数据互相转换的四种常见情况

    1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码 代码如下: JSONArray array = JSONArray.fromObject(userlist);     String jsonstr = array.toString(); 2.把java对象转换成json对象,并转化为字符串 复制代码 代码如下: JSONObject object = JSONObject.fromObject(invite);    String str=object.toString

  • 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中对象的深复制(深克隆)和浅复制(浅克隆)介绍

    1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象. ⑵深复制(深克隆) 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量.那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象.换言之,深复制把要复制的对象所引用的对象都复制了一遍. 2.Java的clone()方法 ⑴clone方法将对象复制了一份并返回

随机推荐