ジェネリクス まとめクイズ

クイズ1

次のジェネリックメソッドのシグネチャを設計しています。「Integer のサブクラスを含む整数列を List に追加して書き込みたい。呼び出し側からは List<Integer> List<Number> List<Object> のいずれを渡しても OK にしたい。」public static void addOneToFive(____ target)____ に当てはまる宣言として、PECS の原則と Java の仕様に照らして最も適切なのはどれでしょうか。

クイズ2

次のコードはコンパイルエラーになります。最も正しい 原因 はどれでしょうか。

Java

List<Integer> ints = new ArrayList<>(); List<Number> nums = ints; // ここでエラー nums.add(3.14);

クイズ3

次のジェネリックメソッドの宣言で、TComparable を要求 したいときに正しい書き方はどれでしょうか。

Java

public static <____> T max(List<T> list) { T best = list.get(0); for (T x : list) if (x.compareTo(best) > 0) best = x; return best; }

クイズ4

次のうち、型消去 (type erasure) に関する記述として 最も正しい ものはどれでしょうか。

クイズ5

次のメソッドのシグネチャを考えています。「Number のサブクラスを含むリストから値を読み取り、double で合計を返す」用途です。____ に当てはまる宣言として最も適切なのはどれでしょうか。

Java

public static double sum(List<____> list) { double total = 0; for (Number n : list) total += n.doubleValue(); return total; }

未回答の問題は、不正解として正解と解説のみ表示します

ログインが必要です

クイズに回答するにはログインしてください。