2

次のコードは私の問題を説明しています:

interface f1 {}

interface f2 extends f1{}


1. List<? extends f1> l1 = new ArrayList<f2>();

2. Map<String, ? extends f1> m1 = new HashMap<String, f2>();

3. Map<String, List<? extends f1>> m2 = new HashMap<String, List<f2>>();

No. 1 と 2 は機能しますが、いいえ。3 日食でエラーが発生します。それは言います:Type mismatch: cannot convert from HashMap<String,List<f2>> to Map<String,List<? extends f1>>理由を理解するのを手伝ってくれませんか。

4

1 に答える 1

3

使用する

Map<String, ? extends List<? extends f1>> m2 = new HashMap<String, List<f2>>();
于 2011-10-04T12:17:12.220 に答える