[英]Java Reflection API: How to know the type of field in a Java class
我正在嘗試使用Java Reflection API的某個程序。 具體來說,我需要知道給定類中字段的實際數據類型。 我發現這樣做的方法是使用java.lang.reflect.Field類。 此類公開諸如getGenericType().getTypeName()
和getType().getTypeName()
。 它們返回java.lang.String
表示形式,用於表示類中所引用數據類型的完全限定名稱。 例如,如果我的課程如下:
class MyClass{Integer age;}
對於上述情況,我將獲得“年齡”的數據類型為String representation
形式中的java.lang.Integer
類型。但是,在我的情況下,String表示形式並沒有太大用處,因為我不需要實際的Integer數據類型。只是其名稱的文本/字符串表示形式,有沒有辦法做到這一點。
您可以使用Field getType方法返回的類。 參見下面的示例代碼:
import java.lang.reflect.Field;
public class Main {
public static void main(String[] args) {
Field[] declaredFields = MyClass.class.getDeclaredFields();
for (Field declaredField : declaredFields) {
Class<?> fieldType = declaredField.getType();
String result=fieldType.getName();
System.out.println(result);
}
}
}
但是請注意原始數據類型(例如:布爾值)。 在這種情況下,fieldType.getName()函數將返回未實例化的字符串(布爾值)。 您可以不同地處理它。 內部數據類型列表在此處 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.