我有這個類:Java泛型<? super T>:不適用方法
public abstract class SlightExpression<T> extends Expression<T> {
public BooleanExpression eq(Expression<? super T> right) {}
}
去圖的下一句話:
SlightExpression<?> left;
SlightExpression<?> right;
//...
left.eq(right);
Java的告訴我:
The method eq(capture#19-of ?) in the type SlightExpression<capture#19-of ?>
is not applicable for the arguments (SlightExpression<capture#20-of ?>)
然而,
public abstract class StringExpression extends SlightExpression<String> {}
然後,Java沒有告訴我這件事。
StringExpression s, f;
s.eq(f);
我不明白這種行爲。
當聲明「SlightExpression >左」你需要在上面的聲明中傳入Type。 「>」意味着你不知道它會是什麼。 –