Rumah >Java >javaTutorial >Bagaimana untuk Mendapatkan Jenis Generik java.util.List menggunakan Reflection?

Bagaimana untuk Mendapatkan Jenis Generik java.util.List menggunakan Reflection?

Linda Hamilton
Linda Hamiltonasal
2024-12-22 21:26:17971semak imbas

How to Get the Generic Type of a java.util.List using Reflection?

Cara Mendapatkan Jenis Generik java.util.List

Untuk mendapatkan semula jenis generik java.util.List yang diberikan , seseorang boleh menggunakan teknik refleksi apabila contoh senarai tersebut adalah medan dalam kelas. Begini caranya:

// Declare fields of type List<String> and List<Integer>
List<String> stringList = new ArrayList<>();
List<Integer> integerList = new ArrayList<>();

public static void main(String[] args) throws Exception {
    Class<Test> testClass = Test.class;

    // Obtain the Field object of the stringList field
    Field stringListField = testClass.getDeclaredField("stringList");
    // Determine the generic type of stringList using ParameterizedType
    ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType();
    // Retrieve the actual type argument (i.e., generic type) of stringListType
    Class<?> stringListClass = stringListType.getActualTypeArguments()[0];
    System.out.println(stringListClass); // class java.lang.String

    // Perform the same process for the integerList field
    Field integerListField = testClass.getDeclaredField("integerList");
    ParameterizedType integerListType = (ParameterizedType) integerListField.getGenericType();
    Class<?> integerListClass = integerListType.getActualTypeArguments()[0];
    System.out.println(integerListClass); // class java.lang.Integer
}

Pendekatan ini juga boleh digunakan untuk jenis parameter dan jenis kaedah pengembalian. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa jika tika Senarai berada dalam skop kelas atau kaedah yang diperlukan, tidak perlu menggunakan refleksi kerana jenis generik diisytiharkan secara eksplisit.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Jenis Generik java.util.List menggunakan Reflection?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn