假设我有一个超类,定义了以下抽象方法:
public abstract <T extends Interface> Class<T> getMainClass();
现在,如果我希望在某个子类中覆盖它
public Class<Implementation> getMainClass(){
return Implementation.class;
}
我收到了有关类型安全和未经检查的转换的警告:
类型安全:从类型
SubFoo
的getMainClass()
返回类型Class<Implementation>
需要未经检查的转换以符合来自类型SuperFoo
的Class<Interface>
如果<T extends Interface>
,那么Class<Implementation>
不属于Class<T>
吗?有没有什么方法可以正确地消除这个警告?