0

我看过这两个答案:

我真正想做的是:

    final Class<? extends Xyz<?>> clazz = Class.forName(name).asSubclass(Xyz<?>.class);

Xyz<?>.class不是有效的 Java。有我应该使用的魔法咒语吗?

4

2 回答 2

0

Class<? extends Xyz<?>>仅当 Xyz 本身是泛型类型时才有意义。

于 2016-02-02T07:07:33.573 回答
0

我不太确定我是否理解您的问题。

如果您的意思是,您的代码行没有编译,您可以通过强制转换来修复它,如下例所示:

package test;

public class Test<T> {

    public static void main(String[] args) throws ClassNotFoundException {
        @SuppressWarnings("unchecked")
        final Class<? extends Test<?>> clazz = (Class<Test<?>>) Class.forName("test.Test").asSubclass(Test.class);
        //... do something with the class
    }

}

如何避免“未经检查”演员的警告,您可以在此处阅读例如: 如何解决未经检查的演员警告?

于 2016-02-02T07:01:59.597 回答