字符串的参数化上限有界泛型类?

时间:2016-02-02 05:09:19

标签: java generics parameterization

我已经看到了这两个答案:

我实际上要做的是:

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

但是Xyz<?>.class不是有效的Java。我应该使用一种神奇的咒语吗?

2 个答案:

答案 0 :(得分: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
    }

}

如何避免&#34;未经检查&#34; -cast的警告,您可以在此处阅读: How do I address unchecked cast warnings?

答案 1 :(得分:0)

只有当Xyz本身是一个通用类型时,

Class<? extends Xyz<?>>才有意义。