auの日記

プログラミング初心者の日記。(auはハンドルネームです)

Javaで型を調べる方法

auです

Pythonだと、「type」を使って簡単に型を調べることができます。

Javaでも同じようなことができればいいのになーと思ったので調べてみました。

Javaで変数の型を調べる方法

変数に対して「getClass().getSimpleName()」を呼び出します。

class TypeCheck {
	public static void main(String[] args) {
		String s = "abc";
		String type = s.getClass().getSimpleName();
		System.out.println(type);
	}
}
String

いい感じです。


しかし、double型ではエラーが起きます。

class TypeCheck {
	public static void main(String[] args) {
		double d = 3.14;
		String type = d.getClass().getSimpleName();
		System.out.println(type);
	}
}
TypeCheck.java:5: エラー: doubleは間接参照できません
                String type = d.getClass().getSimpleName();
                               ^
エラー1個

解決するには、Object型でキャストをする必要があるようです。

class TypeCheck {
	public static void main(String[] args) {
		double d = 3.14;
		String type = ((Object)d).getClass().getSimpleName();
		System.out.println(type);
	}
}
Double

カッコの数に注意が必要ですが、しっかりと変換することができました。


Stringは非プリミティブ型ですが、doubleはプリミティブ型なので一度Objectにキャストする必要があるようです。