泛型
Github地址
参考自廖雪峰java教程
Java使用擦拭法实现泛型,导致了:
- 编译器把类型视为Object
- 编译器根据实现安全的强制转型
因此泛型: - 不能是基本类型,例如:int;
- 不能获取带泛型类型的Class
- 不能判断带泛型类型的类型
- 不能实例化T类型
泛型方法要防止重复定义方法,例如:public boolean equals(T obj)
子类可以获取父类的泛型类型
代码
public class Pair<T,K> implements Comparable<Pair> {
public T name;
public K age;
public Pair(T name,K age){
this.name=name;
this.age=age;
}
// S,V要区别于T,K
public static <S,V> Pair<S,V> create(S name, V age){
return new Pair<S,V>(name,age);
}
@Override
public int compareTo(Pair o) {
return 0;
}
public String toString(){
return this.name.toString() + this.age.toString();
}
public static void main(String[] args) {
Pair<String,Integer> pair = create("wang",19);
System.out.println(pair.toString());
}
}