Array对象数组的foreachable

在Java语言中,数组(Arrays)是持有相同型别(Type)对象的理想机制。为了避免出现NullPointerError的出现,一般采取校验Arrays是否为空,如下所示: 

//getData 
public Object[] getData(){ 
  Object[] result=null; 
  //... 
  return result; 


Object[] data=getData(); 
if(data!=null && data.length>0){ 
  //do something 


采用if(data!=null && data.length>0),可以避免NullPointerError。不过这种写法除了重复之外,还有一个缺点就是不易维护,你很难发现里面的拼写错误(可以借助JUnit单元测试工具来发现)。怎么从根本上避免此类问题的发生?考虑引入一个ArrayUtil类, 

public class ArrayUtil{ 
  private ArrayUtil(){} 
  public static boolean foreachable(Object[] os){ 
     if(os!=null && os.length>0) 
        return true; 
     return false; 
  }

 public static boolean foreachable(Collection collection){ 
     if(collection!=null && collection.size()>0) 
        return true; 
     return false; 
  } 



上面的if语句简化为, 
Object[] data=getData(); 
if(ArrayUtil.foreachable(data)){ 
  //do something 

这样是不是更简洁、统一,坏处是多了一层函数调用。

posted on 2014-06-10 22:23  draken  阅读(95)  评论(0编辑  收藏  举报

导航