【Java SE17 Silver 模擬試験】A-50

Java SE17 Silver 模擬試験
Java SE17 Silver 模擬試験

問題

次のコード断片をコンバイル、実行するとどうなりますか。

public class Main {
	public static void main(String... args) {
		Number n = 0b0110;
		if (n instanceof Byte b) {
			System.out.println("Byte: " + b);
		} else if (n instanceof Short s) {
			System.out.println("Short: " + s);
		} else if (n instanceof Integer i) {
			System.out.println("Integer: " + i);
		} else if (n instanceof Long l) {
			System.out.println("Long: " + l);
		} else {
			System.out.println("Not Integral Number");
		}
	}
}

選択肢

A)コンパイルエラーになる

B)Long: 6 が出力される

C)Not Integral Number が出力される

D)Byte: 6 が出力される

E)NumberFormatException が出力される

F)Short: 6 が出力される

G)Integer: 6 が出力される

解答

A)コンパイルエラーになる

B)Long: 6 が出力される

C)Not Integral Number が出力される

D)Byte: 6 が出力される

E)NumberFormatException が出力される

F)Short: 6 が出力される

G)Integer: 6 が出力される

解説

3行めに記述されているNumber型は、元々Javaで用意されている抽象クラスのNumberクラスです。
ラッパークラスのため、基本データ型は使用できません。

public class Main {
	public static void main(String... args) {
		Number n = 0b0110;         //0b0110は、6を意味する
		if (n instanceof Byte b) {
			System.out.println("Byte: " + b);
		} else if (n instanceof Short s) {
			System.out.println("Short: " + s);
		} else if (n instanceof Integer i) {
			System.out.println("Integer: " + i);
		} else if (n instanceof Long l) {
			System.out.println("Long: " + l);
		} else {
			System.out.println("Not Integral Number");
		}
	}
}

前の問題へ SE17_A-49

次の問題へ SE17_A-51


対象資格:Java SE17 認定資格