の戻り値の型を強制する方法はありますメソッドの戻り値の型と一致しません(Collection<Base>
)。私はそれがなぜ起こるのか理解しています:ジェネリック型が異なるので、2つのクラスは継承によって関連しません。私は、基本クラスのコレクションを返すメソッドを持っては、Arrays.asList
Arrays.asListを使用せずにメソッドの戻り値の型を変更して、派生したオブジェクトの1つをBaseにキャストすることからコンパイラエラーを修正する多くの方法があります。
Arrays.asList呼び出しのジェネリック型を解決するときにコンパイラーに異なる互換性のある型を使用するように指示する方法はありますか? (私はこのパターンを使用しようと、この問題に実行し続けるので、それを動作させるための方法がある場合、私はそれを知っていると思います。)
私はあなたが
Collection<Base> getCollection()
{
return Arrays.asList<Base>(new Derived(),
new Derived());
}
ような何かを行うことができると考えました
コンパイルしようとすると(java 6)、コンパイラはコンマで ')'が必要であると不満を表明します。
アレイ。 asList –