You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring框架构造GET请求RequestEntity时泛型T如何指定

解决方案

GET请求没有请求体的场景,把泛型参数改成Void就能正常编译,这也是构造无请求体RequestEntity的标准写法。

修正后的可编译代码:

String url = ...
HttpHeaders httpHeaders = new HttpHeaders();
RequestEntity<Void> requestEntity = RequestEntity.get(url)
        .headers(httpHeaders)
        .build();
注意事项
  • 不要用通配符?作为泛型:Java泛型的类型捕获机制无法在build()构造阶段匹配未知类型,必然会报编译错误;直接去掉泛型用原始类型接收,也会触发类型不匹配问题或者编译警告。
  • 注意这里的Void是java.lang包下的引用类型,首字母大写,不要和方法返回值用的关键字void混淆,写错也会导致编译失败。
  • Void类型在这里的语义就是“无有效请求载荷”,完全匹配GET请求无请求体的场景,不要随便换成Object或者其他实体类,不然会误导其他维护者以为该GET接口需要传请求体。
  • 后续配合RestTemplate或者RestClient发请求时,响应体类型在调用exchange方法时单独指定就行,和RequestEntity上声明的泛型无关。
  • 如果不需要自定义特殊请求头,可以直接省略headers步骤,最简写法为:RequestEntity<Void> getReq = RequestEntity.get(url).build();

内容的提问来源于stack exchange,提问作者sigma1510

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 11:30:47