Java初心者で用語も正確に把握できているか怪しいですが、
ジェネリックについて質問があります。
下記の使い分けはどのように行えばよいでしょうか。
・境界型ワイルドカード ? extends X
・境界型パラメータ T extends X
また下のコードでコンパイルエラーになるのは、
Javaがジェネリックでは共変をサポートしていない為で、? extends Numberを指定するとエラーが出ないのは、コンパイル後はNumber型に置き換えられる為、型安全である事が保証されているためでしょうか。
List<Number> numlist = new ArrayList<Number>();
List<Integer> intlist = new ArrayList<Integer>();
List<? extends Number> wildlist = new ArrayList<Number>();
numlist = intlist //コンパイルエラー
wilidlist = numlist;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。