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にキャストする必要があるようです。