首页 > 其他 > 详细

泛型数组

时间:2014-07-16 20:40:25      阅读:279      评论:0      收藏:0      [点我收藏+]

1.直接使用T

public class GenericArray<T> {
    private T[] array;
    
    public GenericArray(int size){
        array = (T[]) new Object[size];
    }
    
    public void put(int index, T item){
        array[index] = item;
    }
    
    public T get(int index){
        return array[index];
    }
    
    public T[] rep(){
        return array;
    }
    
    public static void main(String[] args) {
        GenericArray<Integer> gai = new GenericArray<Integer>(10);
        //Integer[] ia = gai.rep();//运行时是Object类型, java.lang.ClassCastException
        Object[] oa = gai.rep(); 
    }
}

 

2.在内部使用Object,取出时转为T。ArrayList就是这种实现

public class GenericArray1<T> {
    private Object[] array;
    
    public GenericArray1(int size){
        array = (T[]) new Object[size];
    }
    
    public void put(int index, T item){
        array[index] = item;
    }
    
    public T get(int index){
        return (T) array[index];
    }
    
    public T[] rep(){
        return (T[]) array;
    }
    
    public static void main(String[] args) {
        GenericArray1<Integer> gai = new GenericArray1<Integer>(10);
        //Integer[] ia = gai.rep();//运行时是Object类型, java.lang.ClassCastException
        Object[] oa = gai.rep(); 
    }
}

 

3.使用类型标记

 1 public class GenericArrayWithTypeToken<T> {
 2     private T[] array;
 3     
 4     public GenericArrayWithTypeToken(Class<T> type ,int size){
 5         array = (T[]) Array.newInstance(type, size);
 6     }
 7     
 8     public void put(int index, T item){
 9         array[index] = item;
10     }
11     
12     public T get(int index){
13         return array[index];
14     }
15     
16     public T[] rep(){
17         return  array;
18     }
19     
20 
21     
22     public static void main(String[] args) {
23         GenericArrayWithTypeToken<Integer> gai = new GenericArrayWithTypeToken<Integer>(Integer.class,10);
24         Integer[] ia = gai.rep(); 
25 
26     }
27 }

 

泛型数组,布布扣,bubuko.com

泛型数组

原文:http://www.cnblogs.com/yuyutianxia/p/3836637.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!