如何修复此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()
?拜托……我的基类中有它。但在我的子类中我定义了类型。为什么我必须在我的子类中再次这样做?啊哈!慢慢地,费力地,一个忏悔被提取出来了。。。