在 Java 中使用泛型類型時,檢索與泛型類型關聯的特定類別非常有用。考慮以下範例:
List<String> stringList = new ArrayList<String>(); List<Integer> integerList = new ArrayList<Integer>();
在這種情況下,我們可能想要存取與這些清單關聯的實際類別類型,即 String 和 Integer。幸運的是,Java 提供了一種使用反射來檢索此資訊的方法。
透過利用 getDeclaredField 方法,我們可以存取保存通用清單的類別中的欄位。從那裡,我們可以獲得字段的 ParameterizedType 並提取實際的類別資訊。下面是一個範例:
Field stringListField = testClass.getDeclaredField("stringList"); ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType(); Class<?> stringListClass = (Class<?>) stringListType.getActualTypeArguments()[0];
此程式碼將 Class
如果列表是在方法的範圍內定義的,則無需檢索它們的泛型明確類型。這是因為類型資訊在方法的上下文中很容易取得。
以上是如何使用反射檢索 Java 清單的通用類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!