gpt4 book ai didi

java - 如何获取自定义类对象的java.lang.Type对象?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:13:01 25 4
gpt4 key购买 nike

我想使用 Java Generics功能来实现一个共同的功能。但我不知道如何获得 java.lang.reflect.Type对象为自定义类对象。以下是我想从给定类名中获取类型并将其传递给 ProcessedResult<T> 的情况。替换 T :

String className = getClassName();
Class clazz = Class.forName(className);
Type type = null;
ProcessedResult<T> result = new ProcessedResult<T>();

我尝试使用 ProductModel.class.getGenericSuperclass() , 但正如它的名字一样,它只返回其父类(super class)的类型。

有人可以帮我吗?谢谢。

最佳答案

您不能将运行时确定的类型指定为泛型类型的编译时替代。

您的类型 T实际上只在编译时强制执行 because of type erasure .因此,当您在运行时拥有实际类型时,任何信息或检查都已经完成并消失了。

你的 ProcessedResult必须使用 Class<T>Type对象而不是做任何有用的工作。

关于java - 如何获取自定义类对象的java.lang.Type对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14253240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com