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


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

最佳答案

如果不抑制警告,您将无法到达那里。您要么必须处理编译时错误,否则就无法创建泛型类型的数组,也可能需要处理当前警告。

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

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

10-07 13:05