• 泛型数组


    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[] toArray(){
            return array;
        }
        
        public static void main(String[] args) {
            GenericArray<Integer> gai = new GenericArray<Integer>(10);
            //Integer[] ia = gai.toArray();//运行时是Object类型, java.lang.ClassCastException
            Object[] oa = gai.toArray(); 
        }
    }

    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[] toArray(){
            return (T[]) array;
        }
        
        public static void main(String[] args) {
            GenericArray1<Integer> gai = new GenericArray1<Integer>(10);
            //Integer[] ia = gai.toArray();//运行时是Object类型, java.lang.ClassCastException
            Object[] oa = gai.toArray(); 
        }
    }

    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[] toArray(){
    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.toArray(); 
    25 
    26     }
    27 }
  • 相关阅读:
    github使用及介绍
    git分支 & git标签
    nginx配置文件参考
    PHP优化
    Nginx优化
    Git安装及基础命令使用
    JavaScript框架设计-node节点
    论文爬取(一)
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/3836637.html
Copyright © 2020-2023  润新知