首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从字符串表示中获取泛型类型?

在Java中,可以使用反射API来获取泛型类型。以下是一个示例代码:

代码语言:java
复制
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;

public class GenericExample {
    private List<String> stringList;

    public static void main(String[] args) throws NoSuchFieldException {
        Type fieldType = GenericExample.class.getField("stringList").getGenericType();
        if (fieldType instanceof ParameterizedType) {
            ParameterizedType parameterizedType = (ParameterizedType) fieldType;
            Type[] typeArgs = parameterizedType.getActualTypeArguments();
            for (Type typeArg : typeArgs) {
                System.out.println("泛型类型: " + typeArg);
            }
        }
    }
}

在这个示例中,我们定义了一个GenericExample类,其中包含一个List<String>类型的字段stringList。我们使用getField()方法获取该字段的Field对象,并调用getGenericType()方法获取其泛型类型。由于泛型类型是参数化的,我们可以使用ParameterizedType接口来获取实际的类型参数。在这个例子中,我们只有一个类型参数,即String类型。

需要注意的是,如果泛型类型嵌套在其他泛型类型中,例如Map<String, List<Integer>>,则需要递归地获取所有的类型参数。此外,如果泛型类型是通过方法参数或返回值获取的,则需要使用getGenericParameterTypes()getGenericReturnType()方法来获取泛型类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券