Best practice to validate null and empty collection in Java

后端 未结 9 1855
北海茫月
北海茫月 2020-12-12 10:57

I want to verify whether a collection is empty and null. Could anyone please let me know the best practice.

Currently, I am checking as below:



        
相关标签:
9条回答
  • 2020-12-12 11:30

    If you use the Apache Commons Collections library in your project, you may use the CollectionUtils.isEmpty and MapUtils.isEmpty() methods which respectively check if a collection or a map is empty or null (i.e. they are "null-safe").

    The code behind these methods is more or less what user @icza has written in his answer.

    Regardless of what you do, remember that the less code you write, the less code you need to test as the complexity of your code decreases.

    0 讨论(0)
  • 2020-12-12 11:31

    That is the best way to check it. You could write a helper method to do it:

    public static boolean isNullOrEmpty( final Collection< ? > c ) {
        return c == null || c.isEmpty();
    }
    
    public static boolean isNullOrEmpty( final Map< ?, ? > m ) {
        return m == null || m.isEmpty();
    }
    
    0 讨论(0)
  • 2020-12-12 11:32

    When you use spring then you can use

    boolean isNullOrEmpty = org.springframework.util.ObjectUtils.isEmpty(obj);
    

    where obj is any [map,collection,array,aything...]

    otherwise: the code is:

    public static boolean isEmpty(Object[] array) {
        return (array == null || array.length == 0);
    }
    
    public static boolean isEmpty(Object obj) {
        if (obj == null) {
            return true;
        }
    
        if (obj.getClass().isArray()) {
            return Array.getLength(obj) == 0;
        }
        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();
        }
    
        // else
        return false;
    }
    

    for String best is:

    boolean isNullOrEmpty = (str==null || str.trim().isEmpty());
    
    0 讨论(0)
提交回复
热议问题