enum Season { SPRING, SUMMER, FALL, WINTER }
public class Main {
public static void main(String[] args) {
Season s = Season.SUMMER;
System.out.println(s.ordinal() + ":" + s.name());
}
}
選択肢
- あなたの回答
- 正解
正解
B. 1:SUMMER
詳細解説
ordinal() は宣言順の 0 始まりのインデックスを返します。SUMMER は 2 番目(0 始まりで 1)なので ordinal は 1 です。name() は定数名をそのまま文字列で返すため SUMMER となります。
なぜ他の選択肢が違うのか
- ordinal は 0 始まりなので SUMMER は 0 ではなく 1 です。
- FALL が ordinal 2 です。SUMMER は 1 です。
- enum は正当な構文です。
罠ポイント
ordinal() は宣言順の変更で値が変わるため、データベースへの永続化には使わないのが一般的です。