首頁 > Java > java教程 > 如何使用反射檢索 Java 清單的通用類型?

如何使用反射檢索 Java 清單的通用類型?

Mary-Kate Olsen
發布: 2024-12-21 15:41:18
原創
904 人瀏覽過

How Can I Retrieve the Generic Type of a Java List Using Reflection?

檢索 Java 清單的泛型類型

在 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 指派給stringListClass 變數的對象,讓我們可以確定清單的通用類型。可以使用相同的方法來檢索 integerList 欄位的泛型類型。

替代注意事項

如果列表是在方法的範圍內定義的,則無需檢索它們的泛型明確類型。這是因為類型資訊在方法的上下文中很容易取得。

以上是如何使用反射檢索 Java 清單的通用類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板