如何修复此java.lang.ClassCastException:java.lang.Class不能转换为java.lang.reflect.ParameterizedType
我有三节课。基类、从基类扩展的子类和从第一个子类扩展的子类,如下所示:如何修复此java.lang.ClassCastException:java.lang.Class不能转换为java.lang.reflect.ParameterizedType,java,generics,Java,Generics,我有三节课。基类、从基类扩展的子类和从第一个子类扩展的子类,如下所示: @Service public abstract class BaseClass<T> { private Type type = ((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments()[0] } @Service public class SubClass extends BaseClass
@Service
public abstract class BaseClass<T> {
private Type type = ((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments()[0]
}
@Service
public class SubClass extends BaseClass<MyType> {
private static final String URL = "/test"
public MyType mainMethodOfThisClass(...) {
...
}
protected String getUrl() {
return URL;
}
}
@Service
public class SubSubClass extends SubClass{
private static final String URL = "/test/test"
@Override
protected String getUrl() {
return URL;
}
}
@服务
公共抽象类基类{
私有类型类型=((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments()[0]
}
@服务
公共类子类扩展了基类{
私有静态最终字符串URL=“/test”
类(…)的公共MyType main方法{
...
}
受保护的字符串getUrl(){
返回URL;
}
}
@服务
公共类子类扩展子类{
私有静态最终字符串URL=“/test/test”
@凌驾
受保护的字符串getUrl(){
返回URL;
}
}
现在我明白了
“创建名为'SubSubClass'的bean时出错,原因是:
org.springframework.beans.BeanInstantiationException:未能
实例化原因:java.lang.ClassCastException:java.lang.Class
无法强制转换为java.lang.reflect.ParameterizedType
我在我的子类中定义了类型。为什么我必须在子类中再次定义类型?你不能通过隐藏问题来逃避问题。请参阅、和,有关类似的问题,请通过快速谷歌搜索找到。我也发现了这些问题。但我的问题没有解决方案。我不明白为什么它看起来像:public class SubClass扩展基类{}公共类子类扩展子类{你告诉我你的代码中没有
(ParameterizedType)getClass().getGenericSuperclass()
?拜托……我的基类中有它。但在我的子类中我定义了类型。为什么我必须在我的子类中再次这样做?啊哈!慢慢地,费力地,一个忏悔被提取出来了。。。