Java教程 – 什么是Java泛型限制
类型参数不能实例化
不能创建类型参数的实例。例如,考虑这个类:
// Can"t create an instance of T.
class Gen<T> {
T ob;
Gen() {
ob = new T(); // Illegal!!!
}
}
静态成员的限制
没有静态成员可以使用由封装类声明的类型参数。例如,此类的所有静态成员都是非法的:
class Wrong<T> {
// Wrong, no static variables of type T.
static T ob;
// Wrong, no static method can use T.
static T getob() {
return ob;
}
// Wrong, no static method can access object of type T.
static void showob() {
System.out.println(ob);
}
}
您可以使用自己的类型参数声明静态泛型方法。
泛型数组限制
您不能实例化基本类型是类型参数的数组。您不能创建类型特定的泛型引用的数组。
以下短程序显示了两种情况:
class MyClass<T extends Number> {
T ob;
T vals[];
MyClass(T o, T[] nums) {
ob = o;
vals = nums;
}
}
public class Main {
public static void main(String args[]) {
Integer n[] = { 1 };
MyClass<Integer> iOb = new MyClass<Integer>(50, n);
// Can"t create an array of type-specific generic references.
// Gen<Integer> gens[] = new Gen<Integer>[10];
MyClass<?> gens[] = new MyClass<?>[10]; // OK
}
}

国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码













