Javaでデータ型を確認する方法

Javaでは、変数のデータ型を実行時に直接確認する方法は限定的です。

Javaは静的型付け言語のため、変数の型はコンパイル時に決まります。ただし、**オブジェクト型(参照型)**については、実行時に型を確認する方法があります。

🔹 1. 参照型(オブジェクト)のデータ型を確認する方法

✅ 方法①:getClass() メソッドを使う

java
String s = "Hello";
System.out.println(s.getClass().getName()); // java.lang.String

✅ 方法②:instanceof 演算子を使う

java
Object obj = "Hello";

if (obj instanceof String) {
    System.out.println("objはString型です");
}

🔸 instanceof は、変数が特定の型かどうかを真偽値で判定するために使います。


🔹 2. プリミティブ型の型確認はどうする?

プリミティブ型(int, double, booleanなど)は実行時に getClass() を使えません。

ただし、ラッパークラスに変換すれば確認可能です。

java
int a = 10;
Integer obj = a; // オートボクシング

System.out.println(obj.getClass().getName()); // java.lang.Integer

🔹 3. メソッドや変数の型を確認したいとき(開発ツール使用)

実際の開発では、型を調べるために以下の方法が一般的です:

✅ IDEで確認(例:Eclipse, IntelliJ)

  • マウスオーバーすると型が表示される

  • Ctrl + クリック で定義元にジャンプ

javac -Xlint でコンパイル警告を見る


🔹 4. 配列やジェネリクスの型確認(応用)

配列:

java
int[] arr = new int[5];
System.out.println(arr.getClass().getName()); // [I(int型の配列)

ジェネリクス(例:ArrayList)の場合:

java
import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        System.out.println(list.getClass().getName()); // java.util.ArrayList
    }
}

ジェネリクスの型(Stringなど)は実行時には消える(=型消去)


🔸 補足:デバッグやログ用の自作メソッド

java
public static void printType(Object obj) {
    if (obj == null) {
        System.out.println("null");
    } else {
        System.out.println("Type: " + obj.getClass().getName());
    }
}

✅ まとめ

型の種類 実行時に型を確認できるか 方法例
プリミティブ型 ❌(直接は不可) ラッパークラスで確認可能
参照型 getClass(), instanceof
IDE使用 ✅(開発中に視覚的に確認) Eclipse / IntelliJ など

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP