ジェネリクス まとめクイズ
クイズ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
次のジェネリックメソッドの宣言で、T に Comparable を要求 したいときに正しい書き方はどれでしょうか。
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;
}未回答の問題は、不正解として正解と解説のみ表示します
ログインが必要です
クイズに回答するにはログインしてください。