当前位置:编程学习 > JAVA >>

一些小工具方法,能将容器转换成指定的数组类型有使用泛型

 
/** 
     *一个小工具类 
     *@author Hf 
     *@mailto:huangfei8087@163.com 
     * 在编程的过程中很多时候都希望能将 
        容器直接转成成为指定的数据,比如 
        List<Integer>ids = new ArrayList<Integer>(); 
        则每次都需要手动创建一个Integer数组,然后在赋值。  
         
        collectionToArray 这个方法就实现了这个功能,可直接转换成为Integer数组 
    */  
public class Helper{  
    /** 
     *判断去空的方法 
     *@author Hf 
     *@mailto:huangfei8087@163.com 
     * 
    */  
    public static boolean isNull(Object value){  
        if(value == null){  
            return true ;   
        }  
        if(value.getClass().isArray()){  
            if(Array.getLength(value) == 0){  
                return true ;   
            }  
        }  
        if(value instanceof Collection<?>){  
            Collection<?> collection = (Collection<?>) value ;  
            if(collection.isEmpty()){  
                return true ;  
            }  
        }else if(value instanceof Map<?, ?>){  
            Map<?, ?> map = (Map<?, ?>) value ;  
            if(map.isEmpty()){  
                return true ;  
            }  
        }else if(value instanceof String){  
            String string = (String) value ;  
            return isNull(string) ;  
        }  
        return false;   
    }  
      
      
    /** 
     * 判断String类型是否为空  
     *@author Hf 
     *@mailto:huangfei8087@163.com 
     * */  
    public static boolean isNull(String value){  
        if(value == null){  
            return true ;  
        }  
        if("".equals(value.trim())){  
            return true ;  
        }  
        return false ;  
    }  
      
    /** 
     *去掉数组中为NULL 的字段 
     *@author Hf 
     *@mailto:huangfei8087@163.com 
     * */  
    public static <T> List<T> checkNull(T[] objs){  
        if(isNull(objs)){  
            return null;  
        }  
        List<T> objList = new ArrayList<T>();   
        for(T obj : objs){  
            if(!isNull(obj)){  
                objList.add(obj) ;     
            }  
        }  
        if(isNull(objList)){  
            return null;  
        }  
        return objList ;    
    }  
      
  
    /** 
     *将容器转换成为数组 
     *@author Hf 
     *@mailto:huangfei8087@163.com 
     * */  
    public static <T> T[] collectionToArray(Collection<T> coll){   
        T[] ts = null ;  
        try {  
            if(coll == null || coll.isEmpty()){  
                return ts;  
            }  
              
            ts = collectionToArray(coll , null ) ;  
        } catch (Exception e) {  
            try {  
                ts = collectionToArray(coll , Object.class ) ;   
            } catch (Exception e2) {   
                e2.printStackTrace( ) ;   
            }  
        }  
        return ts ;   
    }  
      
    /** 
     * 将容器转换成为指定数组 
     *@author Hf 
     *@mailto:huangfei8087@163.com 
     * */   
    public static <T> T[] collectionToArray(Collection<T> coll , Class<?> clazz){  
        Iterator<T> iterator = coll.iterator() ;  
        T[] ts = null ;  
        int x=0 ;  
        while(iterator.hasNext()){  
            T tempT = iterator.next() ;   
            if(x == 0){  
                ts = (T[])Array.newInstance(clazz != null ? clazz : tempT.getClass()   
                        , coll.size()) ;  
            }  
            ts[x++] = tempT ;   
        }  
        return ts ;    
    }  
      
}  

 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,