如何正确投放?

时间:2018-10-19 10:28:21

标签: java generics

protected final Class<? extends MyBaseClass>[] getClasses(){
    return new Class[]{
        MyClass1.class,
        MyClass2.class
    };
}

现在,作为开发人员,我知道MyClass1MyClass2扩展了MyBaseClass,但是如何正确执行,以使IDE /编译器不会发出警告? / p>

1 个答案:

答案 0 :(得分:1)

您必须在不消除警告的情况下到达那里。您要么必须处理编译时错误,否则将无法创建泛型类型的数组,或者需要处理当前警告。

最接近的选择是使您的方法返回集合类型:

protected final List<Class<? extends MyBaseClass>> getClasses() {
    return Arrays.asList(MyClass1.class, MyClass2.class);
}