問題
次のコード断片の//[ A ]の部分に記述するとコンパイルエラー、または実行時に例外がスローされるものはどれですか。(3つ選択)
Main.java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String... args) {
Student[] students = { new Student("Duke"), new Student("Scott"), new Student("Sakila") };
List<Student> list = new ArrayList<>();
for (Student s : students) {
list.add(s);
}
//[ A ]
}
}
Student.java
record Student(String name) {}
選択肢
A) list.set(3, new Student("Candy"));
B) list.add(new Student("Duke"));
C) list.add(new Student(null));
D) list.add(null);
E) list.add(0, new Student(""));
F) list.add(new Student());
G) list.add("Candy");
H) list.set(1, new Student("Wendy"));
解答
A) list.set(3, new Student("Candy"));
B) list.add(new Student("Duke"));
C) list.add(new Student(null));
D) list.add(null);
E) list.add(0, new Student(""));
F) list.add(new Student());
G) list.add("Candy");
H) list.set(1, new Student("Wendy"));
解説
A) list.set(3, new Student("Candy"));
IndexOutOfBoundsException例外がスローされます。
F) list.add(new Student());
Studentクラスの引数なしのStudentコンストラクタが未定義のためコンパイルエラーです。
G) list.add("Candy");
String型ではなく、Student型にする必要があります。
対象資格:Java SE17 認定資格