我在测试中有一些代码,我需要将接口和具体实现都传递给基类,以确保只有接口上的那些方法在测试代码中使用。我希望摆脱下面类层次结构中显示的未经检查的强制转换警告。
public interface Intf<T> { ... }
public class Concrete<T> implements Intf<T>
public abstract class Base<T, I extends Intf<T>, C extends Concrete<T>> {
protected I x;
protected abstract Class<C> getImplClass();
@Before
public setUp {
C impl = getImplClass().newInstance();
...
x = (I) impl; // Unchecked Cast Warning Here
}
}