如何限制该子类不能是泛型的?
编译时错误:泛型类不能子类 java.lang.Throwable
public class TestGenericClass<E> extends Exception {
/*Above line will give compile error, the generic class TestGenericClass<E> may
not subclass java.lang.Throwable*/
public TestGenericClass(String msg) {
super(msg);
}
}
上述编译时错误是由于§ jls-8.1.2中给出的原因,如下所示,并在此问题中进行了解释:
如果泛型类是 Throwable(§11.1.1) 的直接或间接子类,则为编译时错误。
此限制是必需的,因为 Java 虚拟机的捕获机制仅适用于非泛型类。
问题:
如何限制子类不会是泛型类?
java.lang.Throwable
或者更通用的问题是,如何限制任何类的子类都不能是泛型的?