自定义泛型
1 当实例化泛型类的对象时,指明泛型类的类型。指明之后,对应的类中所有使用泛型的位置,都变为实例化中指定的泛型的类型
2 如果我们自定义了泛型类,但是在实例化时没有使用,那么默认类型是Object类的。
下面写了两个java类,一个是自定义类型的类,一个是测试这个类的main方法类:
package org.lanqiao.proj.java2.j03_collection.other;
public class MyList<E> {
private Object[] arr;
private int len = -1;
//两个构造器初始化oBJect类对象arr的个数
public MyList() {
arr = new Object[10];
}
public MyList(int size) {
arr = new Object[size];
}
public void add(E obj) {//add方法
arr[++len] = obj;
}
public E get(int index) {get方法
return (E) arr[index];
}
@Override
public String toString() {//重写Object类的toString方法
String str = "[";
for(int i = 0; i <= len; i++) {
if(i != len) {
str += arr[i] + ", ";
}else {
str += arr[i];
}
}
str += "]";
return str;
}
}
二、测试类(main方法)
package org.lanqiao.proj.java2.j03_collection.other;
import java.util.ArrayList;
import java.util.List;
public class TestList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("libai");
list.add("dufu");
System.out.println(list);
System.out.println(list.get(0));
MyList<String> myList = new MyList<String>();
myList.add("libai");
myList.add("dufu");
System.out.println(myList);
System.out.println(myList.get(0));
}
}
自定义泛型也可以用在集合的其他接口上。