泛型类
//此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
//在实例化泛型类时,必须指定T的具体类型
public class Generic{
private T key;
public Generic(T key) {
this.key = key;
}
public T getKey(){
return key;
}
}
泛型接口
public interface Generator {
public T next();
}
// 实现泛型接口时,可以传入或者不传实际类型:
public class FruitGenerator implements Generator
public class FruitGenerator implements Generator
泛型方法
// 只有声明了的方法才是泛型方法,泛型类中的使用了泛型的成员方法并不是泛型方法
// 此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
public T genericMethod(Class tClass) {
T instance = tClass.newInstance();
return instance;
}
静态方法要使用泛型的话,必须将静态方法也定义成泛型方法
public class StaticGenerator {
public static void show(T t){
}
}
泛型方法中添加上下边界的时候,必须在权限声明与返回值之间的上添加上下边界,即在泛型声明的时候添加。
// 编译器会报错
public T showKeyName(Generic container)
public T showKeyName(Generic container){
System.out.println("container key :" + container.getKey());
T test = container.getKey();
return test;
}