1 自定义类使用泛型类作为参数:
//T是一个模板 相当于 一个类传到类中 (当使用时候传进来什么类型,这个T就是什么类型) 这里的T后面也可以加上一个V 即两个模板的泛型类
public class FanXing<T> {
//定义成员变量T
private T foo;
//得到类型T对象
public T getFoo() {
return foo;
}
//设置类型T
public void setFoo(T foo) {
this.foo = foo;
}
public void print( ){
System.out.println( foo );
}
public static void main(String[] args) {
//传到类中的 变量类型是String,则类中的所有T类型为String
FanXing<String> f = new FanXing<String>();
f.setFoo(new String("eee"));
f.print();
}
}
2 自定义泛型集合类
//自定义泛型集合类
public class SimpleCollection<T> {
private T[] arr ;
private int index;
@SuppressWarnings("unchecked")
public SimpleCollection(){
arr = (T[]) new Object[10];
index = 0;
}
@SuppressWarnings("unchecked")
public SimpleCollection( int len){
arr = (T[]) new Object[len];
index = 0;
}
public T get(int index ){
return arr[index];
}
public void set( T t,Integer i ){
arr[ i ] = t;
}
public static void main(String[] args) {
//测试函数
SimpleCollection<String> col = new SimpleCollection<String>();
col.set("there ",0 );
col.set(" is ",3);
col.set(" torch ",4 );
System.out.println( col.get(0));
}
}