java - 如何正确施法?

标签 java generics

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);
}

关于java - 如何正确施法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52890561/

相关文章:

java - C#中的 `readonly`是否也和Java中的 `final`一样区分值类型和引用类型的变量?

Java 泛型类从类型参数中排除集合

c# - 当 x 不是变量而是枚举类型时,如何将 typeof(x) 中的 x 作为方法参数传递

generics - 是否可以创建一个类型别名,该别名在函数的泛型类型上具有特征界限?

Java 不是确定性的?

java - 使用速度,发生 "java.lang.NullPointerException"

java - Gradle 测试 : show standard streams only with specific tests

swift - Swift 中的通用/多态搜索

c# - 一般将对象转换为 'real' 类型

java - 如何纠正 netbeans 中 'save to file' 按钮上的错误?