簡體   English   中英

Java Reflection API:如何知道Java類中的字段類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM