我一直认为以下应该有效。我得到一个我知道是 a 的对象Class<X>
where X
延长一些课程Xyz
。为了使其类型安全,我想使用 Class.asSubclass,如以下方法所示:
private Class<? extends Xyz> castToXyzClass(Object o) {
final Class<?> resultClass = (Class<?>) o;
final Class<? extends Xyz> result = Xyz.class.asSubclass(resultClass);
return result;
}
然而,在 Eclipse 中它不起作用,我看到的唯一解决方案是未经检查的强制转换。我敢打赌上面的代码一定可以工作,我已经使用过类似的东西......不知道这里出了什么问题。
asSubclass()
对它所调用的对象进行操作,而不是对其参数进行操作 - 这不是人们所习惯的,但它读起来很好。你只需要这样做:
final Class<? extends Xyz> result = resultClass.asSubclass(Xyz.class);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)