Spring RESTTemplate 的泛型

2023-11-21

我有一堂这样的课:

public class Wrapper<T> {

 private String message;
 private T data;

 public String getMessage() {
    return message;
 }

 public void setMessage(String message) {
    this.message = message;
 }

 public T getData() {
    return data;
 }

 public void setData(T data) {
    this.data = data;
 }

}

我使用resttemplate如下:

...
Wrapper<Model> response = restTemplate.getForObject(URL, Wrapper.class, myMap);
Model model = response.getData();
...

然而它抛出一个:

ClassCastException

我读到:尝试在 java 中使用 Jackson 时出现问题但没有帮助。有一些与我的问题相关的主题等:https://jira.springsource.org/browse/SPR-7002 and https://jira.springsource.org/browse/SPR-7023

有任何想法吗?

PS:我的错误是:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to a.b.c.d.Model

我认为resttemplate无法理解我的通用变量,也许它接受它作为对象而不是通用T。所以它变成了LinkedHashMap。你可以从中阅读here它在解释它的编组内容时说:

JSON 类型 | Java类型

对象|链接哈希映射


3.2 M2 中引入了 ParameterizedTypeReference 来解决此问题。

Wrapper<Model> response = restClient.exchange(loginUrl, 
                          HttpMethod.GET, 
                          null, 
                          new ParameterizedTypeReference<Wrapper<Model>>() {}).getBody();

但是,没有引入 postForObject/getForObject 变体。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring RESTTemplate 的泛型 的相关文章

随机推荐

  • 来自查询的 mysqldump

    如何从查询中为表创建 mysql 转储 我需要这样的东西 mysqldump uroot pxxxx mydb select from table where name 1 gt tmp a Thanks mysqldump 有一个 whe
  • 如何在 Yii2 中设置默认模式

    我的 Yii2 安装了 PostgreSQL 我喜欢为每个项目使用架构 而不是为每个项目使用单独的数据库 稍后设置的问题是我无法弄清楚如何通过配置选择默认架构 defaultSchema 我的迁移表有问题 因为当我运行迁移命令时它默认为 公
  • 替换包含特定字符串的整个表达式

    我的数据框有一列包含大量文件名 例如 d lt c harry11 scott80 norm avi harry11 norm avi harry11 scott80 lpf avi joel51 lpf avi rich82 joel51
  • 酸洗数据框

    我正在尝试使用以下命令来pickle DataFrame import pandas as pd from pandas import DataFrame data pd read table Purchases tsv index col
  • 将 PHP PDO 查询编写为 `dbName`.`tableName` 而不是 `tableName` - 为什么?

    我正在 PHP PDO 中编写一个用户注册函数 我发现我的查询只有这样编写才能正常运行
  • 用于拨打电话的Java API [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有任何 Java API 可以给手机打电话 前提是服务提供商支持会安排拨打该电话 myProgram A gt Java API to make
  • 显式导入实例

    如何显式导入类型类实例 另外 如何通过合格的进口来做到这一点 目前 我正在做 import Control Monad Error 导入我可以使用的 monad 实例 Either String 以前 我用过 import Control
  • iOS - 检测 UIView 中的触摸?

    所以我有一个 UIView 的子类 它应该检测触摸 仅当触摸在当前视图内开始时 视图才会检测触摸 当触摸在视图之外开始并且它们在我的自定义视图内移动时 touchesMoved 不会被调用 有什么解决方案可以检测当前视图中尚未开始的移动触摸
  • 如何在客户端处理SignalR服务器异常?

    错误处理程序在客户端添加如下 connection hub url signalr connection hub logging true connection hub error function error console log Si
  • 在事务期间锁定 MYSQL 表中的行

    我有一批这样的查询 START TRANSACTION SELECT amount FROM piggybank WHERE id 2 UPDATE piggybank SET amount amount 5 WHERE id 1 COMM
  • 将颜色滤镜应用于位图对象

    I found 这段代码关于如何在 C 中将颜色滤镜应用到 Bitmap 对象 它的问题是它使用不安全的代码来完成此操作 有没有一种托管的 安全的方法来做同样的事情 我知道我可以使用 AForge NET 或类似的库 但我希望有一种简单的方
  • 以特定分辨率保存 MATLAB 图形

    如何更改 MATLAB 图形的分辨率 默认好像是96x96PPI 您可以使用以下方式保存print命令 就是这样 h1 figure your plotting commands here print h1 djpeg r150 filen
  • 如何使 RadioButton 的项目符号顶部对齐?

    我有一个多行单选按钮 我希望项目符号位于内容的左侧 默认情况下 与单选按钮控件的顶部对齐 在 XAML 中执行此操作的最简单方法是什么 Note 一定要检查一下雷切尔的回答 她将这一阶段进一步转化为通用模板 首先 不要浪费时间Vertica
  • 为什么数组常量只能在初始值设定项中使用? [复制]

    这个问题在这里已经有答案了 可能的重复 数组常量只能在初始化器中使用错误 我正在研究数组 并通过这种在一行中声明和初始化数组的快捷方法来实现 例如 int a 1 2 3 4 5 但是当我尝试执行以下代码时 我收到此编译器错误 提示 数组常
  • Objective-c NSFilePosixPermissions 到人类可读的 NSString

    有没有办法从 NSFilePosixPermissions 整数获取人类可读的字符串 例如 drwxr xr x 文件系统权限属性只是一个无符号长整型值 下面的代码显然可以变得更高效 但它 或多或少 显示了需要做什么才能获得您想要的字符串
  • 使用 jpackage 实用程序进行代码签名+公证在 macOS 上不起作用

    对于某些上下文 我使用 jpackage 实用程序尝试创建签名的 DMG 文件以交付给我的用户 我需要签署此 DMG 的原因是我想对该软件进行公证 顺便说一句 我不确定是否可以使用 jpackage 进行公证 但无论如何我正在尝试 但是 我
  • 通过弱指针对块中的 ivar 进行赋值

    我有一个只读属性isFinished在我的界面文件中 typedef void MyFinishedBlock BOOL success NSError e interface TMSyncBase NSObject BOOL isFini
  • UISearchbar 的“取消”按钮的图像[重复]

    这个问题在这里已经有答案了 可能的重复 设置 UISearchBar 中取消按钮的样式 我正在尝试为搜索栏设置图像 我可以使用搜索栏的子视图为搜索栏设置图像UISearchBarBackground 但我无法为搜索栏的取消按钮设置图像 我得
  • 由 IIS 提供服务时,Fontawesome 无法工作

    当我将应用程序放在 IIS7 服务器上时 FontAwesome 对我不起作用 在 Firefox 中 请求的 URL 被编码为http l2etest kema intra fonts fontawesome webfont ttf 3F
  • Spring RESTTemplate 的泛型

    我有一堂这样的课 public class Wrapper