関係のない型への instanceof
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
Integer n = 1;
if (n instanceof String s) {
System.out.println(s);
}
}
}
- A 何も出力されない
- B
1と出力される - C 実行時に例外が発生する
- D コンパイルエラーになる
正解と解説を見る
正解: D
- A: 実行まで進まないので、何も出力されません。
- B: 実行まで進まないので、何も出力されません。
- C: 型の誤りはコンパイル時に見つかります。
- D: Integer 型の変数が String であることは絶対にないので、コンパイルエラーです。
ポイント
- Integer 型の変数が String であることは絶対にないので、このような instanceof はコンパイルエラーです。