以下代码会导致错误:
Class<? extends BaseHandler<?, ?>> aClass = resource.getHandler();
BaseHandler<?, ?> baseHandler = resource.getHandler();
BaseHandler<?, ?> baseHandler = (BaseHandler<?, ?>) resource.getHandler();;
Run Code Online (Sandbox Code Playgroud)
第一行有效。第二行第三种强制转换有错误:
Inconvertible types; cannot cast 'java.lang.Class<capture<? extends c.c.BaseHandler<?,?>>>' to 'c.c.BaseHandler<?,?>'
Run Code Online (Sandbox Code Playgroud)
我是这样认为的:
Class<? extend BaseHandler<?, ?>>应该是BaseHandler的子Class类型。那么baseHandler应该代表所有儿童班级。为什么会出现编译错误?
该代码不起作用的原因与
Class<Integer> clazz = Integer.class;
Integer i = clazz;
Run Code Online (Sandbox Code Playgroud)
不起作用,即 aClass不是它所代表的类的实例。
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |