在Java中validation空集合和空集合的最佳实践
我想validation一个集合是否为空并且为null 。 任何人都可以让我知道最佳做法。 
目前,我正在检查如下:
 if (null == sampleMap || sampleMap.isEmpty()) { // do something } else { // do something else } 
	
 如果在项目中使用Apache Collections库,则可以使用CollectionUtils.isEmpty和MapUtils.isEmpty方法分别检查集合或映射是否为空(即它们是“无效”)。 
这些方法背后的代码或多或less是用户@icza在他的答案中写的。
不pipe你做什么,记住你写的代码越less,代码复杂度越低,你需要testing的代码就越less。
这是检查它的最好方法。 你可以写一个辅助方法来做到这一点:
 public static boolean isNullOrEmpty( final Collection< ? > c ) { return c == null || c.isEmpty(); } public static boolean isNullOrEmpty( final Map< ?, ? > m ) { return m == null || m.isEmpty(); } 
 就个人而言,我更喜欢使用空的集合而不是null并且algorithm的工作方式对于algorithm来说,如果集合是空的或者不是空的,那么algorithm是无关紧要的。 
 如果您使用Spring框架,那么您可以使用CollectionUtils来检查集合(List,Array)和Map等。 
 if(CollectionUtils.isEmpty(...)) {...} 
当你使用弹簧,那么你可以使用
 boolean isNullOrEmpty = org.springframework.util.ObjectUtils.isEmpty(obj); 
其中OBJ是任何[地图,集合,arrays,aythink …]
否则:代码是:
 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; } 
对于string最好的是:
 boolean isNullOrEmpty = (str==null || str.trim().isEmpty()); 
如果你需要检查null,那就是这样。 但是,如果你有这个控制权,只要可能,只要返回空的集合,并且只在以后检查空。
这个线程与C#大致相同,但是这些原则同样适用于java。 就像之前提到的那样,null应该只在返回时才返回
- null可能意味着更具体的东西;
 - 你的API(合同)可能会强制你返回null。
 
 你可以使用org.apache.commons.lang.Validate的“ notEmpty ”方法: 
  Validate.notEmpty(myCollection) – >validation指定的参数集合既不为空也不为零(无元素); 否则抛出exception。 
对于所有集合的集合映射使用:isEmpty方法,这些集合对象上有。 但是你必须先做一个nulkl检查
地图;
…….. if(map!= null &&!map.isEmpty())……