java如何转换类<?>上课?扩展X>?
我有一个类A
另存为Class<?>
,我知道它是B的一个子类,必须将其转换为a Class<? extends B>
。但我的代码没有编译:
Class<?> c = ...
if (c.newInstance() instanceof B) { // true
Class<? extends B> = (B) c; // does not compile
}
在我的研究中,我发现了通配符捕获,但我不知道如何使用这种方法,因为B是一个abstract
类。
那么我该如何解决这个问题呢
# 1 楼答案
只需将其转换为右侧类型:
首先,左边的类型是
Class<? extends B>
,而您在cast中使用的类型是B
一些扩展B的类与B不同和B的em>等级不一样然后:还有一个语法错误,因为您也省略了一个变量名
# 2 楼答案
java.lang.Class
有一个方法可以做到这一点:^{有了它,您可以将上述代码编写为: