Does java.util.List.isEmpty() check if the list itself is null?
例如:
1 2 3 4 5 6 7 |
这会抛出
您试图在
如果
编辑:
您可能想看到这个问题。
我建议使用Apache Commons Collections
http://commons.apache.org/proper/commons-collections/javadocs/api-release/org/apache/commons/collections4/CollectionUtils.html#isEmpty(java.util.Collection)
它实现了很好,并且记录良好:
1 2 3 4 5 6 7 8 9 10 11 12 13 | /** * Null-safe check if the specified collection is empty. * <p> * Null returns true. * * @param coll the collection to check, may be null * @return true if empty or null * @since Commons Collections 3.2 */ public static boolean isEmpty(Collection coll) { return (coll == null || coll.isEmpty()); } |
这将抛出
1 | if ((test != null) && !test.isEmpty()) |
这比传播
否
如果您使用的是Spring框架,则可以使用
1 2 3 | public static boolean isEmpty(Collection< ? > collection) { return (collection == null || collection.isEmpty()); } |
即使您没有使用Spring,也可以继续调整此代码以添加到
在任何空引用上调用任何方法将始终导致异常。首先测试对象是否为null:
1 2 3 4 | List<Object> test = null; if (test != null && !test.isEmpty()) { // ... } |
或者,编写一个方法来封装这个逻辑:
1 2 3 | public static < T > boolean IsNullOrEmpty(Collection< T > list) { return list == null || list.isEmpty(); } |
然后你可以这样做:
1 2 3 4 | List<Object> test = null; if (!IsNullOrEmpty(test)) { // ... } |
除了Lion的回答,我可以说你最好使用
这也检查null,因此不需要手动检查。
是的,它会抛出异常。也许你习惯了PHP代码,其中
您可以轻松地记住它,因为该方法直接在列表中调用(该方法属于列表)。因此,如果没有列表,那么就没有方法。 Java会抱怨没有列表可以调用此方法。
您也可以使用自己的isEmpty(用于多个集合)方法。添加这个您的Util类。
1 2 3 4 5 6 7 | public static boolean isEmpty(Collection... collections) { for (Collection collection : collections) { if (null == collection || collection.isEmpty()) return true; } return false; } |