Home > Java > javaTutorial > How to Determine the Generic Type of a Java `List` Object?

How to Determine the Generic Type of a Java `List` Object?

Susan Sarandon
Release: 2024-12-28 11:12:12
Original
606 people have browsed it

How to Determine the Generic Type of a Java `List` Object?

How to Retrieve the Generic Type of a java.util.List

In Java, generics allow collections to store elements of a specific type, such as List or List. Occasionally, it becomes necessary to determine the generic type of a list.

One approach to retrieving the generic type involves reflection, as demonstrated in the following code:

import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.util.ArrayList;
import java.util.List;

public class Test {

    List<String> stringList = new ArrayList<>();
    List<Integer> integerList = new ArrayList<>();

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

        Field stringListField = testClass.getDeclaredField("stringList");
        ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType();
        Class<?> stringListClass = (Class<?>) stringListType.getActualTypeArguments()[0];
        System.out.println(stringListClass); // class java.lang.String

        Field integerListField = testClass.getDeclaredField("integerList");
        ParameterizedType integerListType = (ParameterizedType) integerListField.getGenericType();
        Class<?> integerListClass = (Class<?>) integerListType.getActualTypeArguments()[0];
        System.out.println(integerListClass); // class java.lang.Integer
    }
}
Copy after login

This technique can be used to obtain the generic type of fields, parameter types, and return types of methods. However, it's important to note that if the generic type is within the same scope where it's declared, there is no inherent need to retrieve it since it's already known.

The above is the detailed content of How to Determine the Generic Type of a Java `List` Object?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template