gpt4 book ai didi

java - 从 TypeReference 转换为 Class 而无需强制转换 (Java)

转载 作者:搜寻专家 更新时间:2023-11-01 01:22:35 26 4
gpt4 key购买 nike

我想从 TypeReference<E> 开始反对 Class<E> Java 中的对象,使用转换。我需要使用 TypeReference由于我的代码使用 Jackson 的方式,我需要 Class对象,因为我想用它来将类型推断为我应用程序中的其他泛型类之一。

我知道 TypeReference.getType()将返回 java.lang.reflect.Type目的。基本上,如果我能找到一种无需转换即可使用代码的方法来从 Type 获取至 Class , 然后我就找到了我的问题。

Javadoc 引用:

最佳答案

你不能转换它:这是非常基本的 Java 问题——TypeReference 和 Class 不是从同一个基类派生的,所以它违反了语言定义。

但如果我猜对了你想要实现的目标,你可以使用 JavaType 转换原始(类型删除)类:

JavaType type = mapper.getTypeFactory().constructType(ref);
Class<?> cls = type.getRawClass();

您可以从 TypeReferenceClass 或什至只是基本的 JDK Type 构建 JavaType

关于java - 从 TypeReference<E> 转换为 Class<E> 而无需强制转换 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13166233/

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