1. ホーム
  2. java

[解決済み] Java変数の型を表示する

2022-02-28 17:01:04

質問

Javaで、変数の型を表示することは可能ですか?

public static void printVariableType(Object theVariable){
    //print the type of the variable that is passed as a parameter
    //for example, if the variable is a string, print "String" to the console.
}

この問題に対する一つのアプローチは、変数の種類ごとにif文を使うことですが、それでは冗長になりそうなので、何か良い方法はないでしょうか。

if(theVariable instanceof String){
    System.out.println("String");
}
if(theVariable instanceof Integer){
    System.out.println("Integer");
}
// this seems redundant and verbose. Is there a more efficient solution (e. g., using reflection?).

解決方法は?

この例からすると、あなたが取得したいのは 変数の宣言された型ではなく、変数が保持する型です。ということで、私が想定しているのは Animal animal = new Cat("Tom"); を取得したい場合 Cat ない Animal .

パッケージ部分を除いた名前だけを取得する場合は

String name = theVariable.getClass().getSimpleName(); //to get Cat

その他

String name = theVariable.getClass().getName(); //to get full.package.name.of.Cat