【发布时间】:2015-05-15 11:28:51
【问题描述】:
我希望实现该继承层次结构:
Generic 由 Insurance 扩展,其中包含内部(非静态)类 HouseInsurance
要扩展的通用类
public abstract class Generic<T extends Generic> {
public Generic() {
entityClass = ((Class) ((Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]));
}
}
类扩展泛型并具有扩展外部(封闭)类Insurance的嵌套类
public class Insurance extends Generic<Insurance> {
public class HouseInsurance extends Insurance {
}
}
不幸的是,当我尝试创建内部类的实例时出现错误:
ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
我想我应该添加到内部类声明参数类型。但是我不知道怎么做。
通用类被许多其他类扩展并且它可以工作。这是第一次用内部类继承,所以我觉得有问题。
请帮忙。 到目前为止,我只收到编译错误。
【问题讨论】:
-
您是如何尝试创建实例的?
-
HouseInsurance houseInsurance = Insurance.new HouseInsurance();
-
在这种情况下 entityClass 应该指向什么?保险类还是 HouseInsurance 类??
标签: java generics model parameterized