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 回答