泛型类
-
对象实例化时不指定泛型,默认的泛型为 Object 类型
A a3 = new A();//不指定泛型时,默认的泛型为 Object 类型 // A<Object> a3 = new A<Object>(); a3.setKey(new Object()); Object obj = a3.getKey();
-
泛型不同的引用不能相互赋值,例如以下两个:
A<Integer> a1 = new A<Integer>(); A<String> a2 = new A<String>(); // 不能 a1 = a2;
-
在 new 对象时,指定的泛型为什么,对象使用的 set/get 方法中就得是什么类型的值。
public class Demo01 {
public static void main(String[] args) {
A<Integer> a1 = new A<Integer>();//在 new 对象时,指定的泛型为 Integer
a1.setKey(1);//对象使用的 setKey(T key)方法中的 key 就是 Integer 类型
System.out.println(a1.getKey());
A<String> a2 = new A<String>();
a2.setKey("a");
System.out.println(a2.getKey());
A a3 = new A();//不指定泛型时,默认的泛型为 Object 类型
// A<Object> a3 = new A<Object>();
a3.setKey(new Object());
Object obj = a3.getKey();
}
}
/**
* 这里的泛型 T 可以任意取名
* 但推荐为 T (Type类型的意思)
* @param <T>
*/
class A<T> {
private T key;
public T getKey() {
return key;
}
public void setKey(T key) {
this.key = key;
}
}