首页 > 解决方案 > 如何正确施法?

问题描述

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

现在,作为开发人员,我知道MyClass1MyClass2extends MyBaseClass,但是我该如何正确地做到这一点,以便 IDE/编译器不会发出警告?

标签: javagenerics

解决方案


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

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

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

推荐阅读