抽象的使用

其中一种使用:

本来是这样的:

/存储Int的集合类  
public class IntArrayList{  
    private int[] dataSet;  
    public  IntArrayList(int size){  
        dataSet = new int[size];  
    }  
    public int get(int position){  
        return dataSet[position];  
    }  
  
    public void add(int pos ,int data){  
        dataSet[pos] =data;  
    }  
    public int size(){  
        return dataSet.length;  
    }  
}  
//存储String的集合类  
public class StringArrayList{  
    private String[] dataSet;  
    public StringArrayList(int size){  
        dataSet = new String[size];  
    }  
    public String get(int position){  
        return dataSet[position];  
    }  
    public void add(int pos ,String data){  
        dataSet[pos] = data;  
    }  
    public int size(){  
        return dataSet.length;  
    }  
}  

然后我们可以使用泛型定义:抽象类SimpleArryList:

public class SimpleArrayList<T> {  
    private T[] dataSet;  
    public SimpleArrayList(int size){  
        dataSet = (T[]) new Object[size];  
    }  
    public T get(int position){  
        return dataSet[position];  
    }  
    public void add(int pos ,T data){  
        dataSet[pos] = data;  
    }  
    public int size(){  
        return dataSet.length;  
    }  
}  

使用:

/方法一  
//使用IntArrayList  
IntArrayList intArr = new IntArrayList(2);  
intArr.add(0,3);  
intArr.add(1,55);  
System.out.println(intArr.get(1));  
//使用StringArrayList  
StringArrayList strArr = new StringArrayList(3);  
strArr.add(0,"hello");  
System.out.println(strArr.get(0));  
  
//方法二  抽出来之后  
//使用SimpleArrayList 存储整型  
SimpleArrayList<Integer> intArrayList = new SimpleArrayList<>(3);  
intArrayList.add(0,3);  
intArrayList.add(1,55);  
System.out.println(intArrayList.get(1));  
  
//使用SimpleArrayList存储String  
SimpleArrayList<String> strArrayList = new SimpleArrayList<>(3);  
strArrayList.add(0,"hello , SimpleArrayList");  
System.out.println(strArrayList.get(0));  

转自https://blog.csdn.net/u011889786/article/details/51865344代码重构的机巧

原文地址:https://www.cnblogs.com/bestmoment/p/9185991.html