zoukankan      html  css  js  c++  java
  • 泛型数组

    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 }
  • 相关阅读:
    setCookie
    EF getCookie
    EF
    Dapper修改
    Dapper显示
    Dapper上传图片
    Dapper存储过程分页
    Azure Function(.Net Cor框架)读取配置文件
    .Net Core3.1中出现AssemblyInfo特性重复
    YAML配置文件 基础学习
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/3836637.html
Copyright © 2011-2022 走看看