【发布时间】:2011-02-28 16:48:57
【问题描述】:
假设我有一个定义以下抽象方法的超类
public abstract <T extends Interface> Class<T> getMainClass();
现在如果我想在某个子类中覆盖它
public Class<Implementation> getMainClass(){
return Implementation.class;
}
我收到关于类型安全和未经检查的转换的警告:
类型安全:
getMainClass()类型SubFoo的返回类型Class<Implementation>需要未经检查的转换才能符合Class<Interface>类型SuperFoo的要求
如果<T extends Interface>,Class<Implementation> 不属于Class<T> 吗?有什么方法可以正确消除警告吗?
【问题讨论】: