インターフェイスと具体的な実装の両方を基本クラスに渡して、インターフェイスのメソッドのみがテスト コードで使用されるようにする必要があるテスト コードがあります。以下のクラス階層に示されている未チェックのキャスト警告を取り除きたいです。
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
}
}