0

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

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
    }
}
4

2 に答える 2

0

直接宣言できる

protected abstract Class<I> getImplClass();

キャストを避けます。

于 2012-11-26T12:04:14.697 に答える
-1

@SuppressWarnings("unchecked")クラスまたはメソッドの前に追加できます。ただし、これはこれらの警告を抑制するだけであることを覚えておいてください。

于 2012-11-26T10:28:21.693 に答える