Javaで変数の型を取得する方法は何ですか?
Javaでは、リフレクション機構を使用して変数の型を取得することができます。変数の型を取得するために、Classクラスのメソッドを使用することができます。以下に示すように。
- getClass()メソッドを使用すると、オブジェクトの変数の型を取得できます。
String str = "Hello";
Class<? extends String> strClass = str.getClass();
System.out.println(strClass);
- 基本データ型については、ラッパークラスのTYPEフィールドを使用して、対応するClassオブジェクトを取得できます。
int num = 10;
Class<Integer> numClass = Integer.TYPE;
System.out.println(numClass);
- FieldクラスのgetType()メソッドを使用すると、変数の型を取得することができます。ただし、このメソッドはリフレクション内で使用する必要があります。
import java.lang.reflect.Field;
public class Main {
public static void main(String[] args) throws NoSuchFieldException {
String str = "Hello";
Field field = str.getClass().getField("value");
Class<?> fieldType = field.getType();
System.out.println(fieldType);
}
}
上記の方法で取得するのは変数の実行時の型であり、実際に保存されている型です。ジェネリック型の場合、具体的なジェネリックパラメータ型は取得できません。変数の宣言型を取得する必要がある場合は、リフレクションを使用することができます。