Javaジェネリック:警告には、<InterfaceName>に準拠するためのチェックされていないキャストが必要です
私はインターフェイスを持っていますinterface x {
A getValue();
}
と実装
class y implements x {
public B getValue() { return new B();}
}
BはAのサブクラスです。これは共変なオーバーライドのために動作します。
警告 へのチェックされていないキャストがA.getValue()に準拠している必要があります。2つのバージョンのインターフェイスの違いは何ですか?私は彼らが同じだと思っていた。
興味深いことに、 "interface x {T getValue();}' "に変更すると警告が消えます。 –
ええ、私はこの場合、コンパイラはクラス宣言からTが何であるか把握する方法を持っていると思います。しかし、他の場合には、Tが何であるか把握する方法がありません。 – Surya