record にインスタンス変数を追加
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
System.out.println(new User("ann"));
}
}
record User(String name) {
int age;
}
- A
User[name=ann]と出力される - B 実行時に例外が発生する
- C コンパイルエラーになる
- D
User[name=ann, age=0]と出力される
正解と解説を見る
正解: C
- A: 実行まで進まないので、何も出力されません。
- B: record の書き方の誤りはコンパイル時に見つかります。
- C: record の本体にはインスタンス変数を追加できないので、コンパイルエラーです。
- D: 実行まで進まないので、何も出力されません。
ポイント
- record の本体には、ヘッダ以外の インスタンス変数を追加できません。static 変数やメソッドは追加できます。