私はこの擬似コードを持っています:
Example A
Interface Option
Class OptionImplementer implements Option
ArrayList<ArrayList<? extends Option>> test = new ArrayList<ArrayList<OptionImplementer>>(); <-- Fails?
なぜ失敗するのですか?子はOptionを実装しており、extendsの代わりにSuperキーワードも試しました。
「ボーナス」の質問として、これらのコンストラクターの署名は同じ消去を行うと仮定されています。
Example B
public void test(ArrayList<ArrayList<? extends Option>> test) {
}
public void test(ArrayList<ArrayList<OptionImplementer>> test) {
}
例AまたはBが機能するはずです。Aは失敗するので、Bは機能するはずです...