栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

无法获取通用ResponseEntity 其中T是泛型类“ SomeClass”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

无法获取通用ResponseEntity 其中T是泛型类“ SomeClass”

这是一个已知问题。现在,通过引入修复了此问题

ParameterizedTypeReference
,您可以显式
继承 该参数化类型,以便在运行时提供类型信息。这称为 超类型令牌 ,它可解决类型擦除,因为子类(在这种情况下为匿名)在运行时保留
通用超类型类型参数

但是,您不能使用

postForObject
,因为该API仅支持
exchange()

ResponseEntity<CisResponse<CisResponseEntity>> res = template.exchange(        rootUrl,        HttpMethod.POST,        null,        new ParameterizedTypeReference<CisResponse<CisResponseEntity>>() {});

请注意,最后一行演示了超级类型令牌的概念:您不提供文字

CisResponse.class
,而是提供参数化类型的匿名实例化
ParameterizedTypeReference<T>
,可以在运行时提取其子类型信息。您可以将超级类型令牌视为实现目标的
技巧
Foo<Bar<Baz>>.class

顺便说一句,在Java中,您不需要使用以下前缀对实例变量进行访问

this
:如果您的对象定义了
url
template
成员,则只需使用其简单名称即可访问它们,而不必像您这样做时那样通过前缀
this.url
this.template



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507322.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号