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

2014-11-24 09:26:26 · 作者: · 浏览: 0
 
/** 
     *一个小工具类 
     *@author Hf 
     *@mailto:huangfei8087@163.com 
     * 在编程的过程中很多时候都希望能将 
        容器直接转成成为指定的数据,比如 
        Listids = new ArrayList(); 
        则每次都需要手动创建一个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 
List checkNull(T[] objs){ if(isNull(objs)){ return null; } List objList = new ArrayList(); 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[] collectionToArray(Collection 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[] collectionToArray(Collection coll , Class< > clazz){ Iterator 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 ; } }