【发布时间】:2010-01-11 09:23:52
【问题描述】:
调用这个方法:
public static @Nonnull <TV, TG extends TV> Maybe<TV> something(final @Nonnull TG value) {
return new Maybe<TV>(value);
}
像这样:
public @Nonnull Maybe<Foo> visit() {
return Maybe.something(new BarExtendsFoo());
}
在 Eclipse 中编译得很好,但是 javac 给出了“不兼容的类型”警告:
found : BarExtendsFoo
必填:Foo
【问题讨论】:
-
一个没有非标准注释和缺少类的工作示例将使人们更容易提供帮助。
-
我有一个简单的问题...编译器如何知道您要在调用中返回的实际类型:
Maybe.something(new BarExtendsFoo())? -
为什么不公开@Nonnull Maybe 访问() { ...} ?
-
dribeas,从visit()的签名中应该就知道了,里面明确说明了想要的类型。
标签: java eclipse compiler-construction javac