【发布时间】:2012-12-04 03:21:31
【问题描述】:
我不明白为什么会出现这个编译错误
绑定不匹配:
Resource类型的泛型方法element(T)不匹配 适用于参数 (Class<Chassis>)。推断的 类型Class<Chassis>不是 有界参数<T extends Resource>。
使用以下代码:
public class Resource {
protected abstract class has<T extends Resource> {
public has(T v) {}
}
protected <T extends Resource> has element(T v) {
return new has<T>(v) {};
}
}
class Car extends Resource {
has chassis = element(Chassis.class);
}
class Chassis extends Resource {
}
为什么这是无效的? Chassis 扩展了 Resource,那么为什么不匹配 <T extends Resource>?
我怎样才能约束 element() 方法接受 Resource 类对象或任何 Resource 子类对象作为参数?
【问题讨论】: