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

容器转换成为指定数组

 

每次希望容器转换成为数组的时候,官方都值提供了转换成为Object数组的,

有的时候还是需要自己手动转换,可是每次都写就会觉得很烦,今天终于研究了一个方法出来了,

终于可以可以省事了


 

/** 
     * 容器转换成数据,支持泛型 
     * */  
    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 ;   
    }  
      
    /** 
     * 转换类型 
     * */  
    private 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 © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,