Spring boot Spring引导RestTemplate反序列化问题

Spring boot Spring引导RestTemplate反序列化问题,spring-boot,resttemplate,Spring Boot,Resttemplate,我有以下课程 public class RestResponseDto { private Boolean status; private Object data; private Object error; public RestResponseDto(Boolean status, Object data, Object error) { this.status = status; this.data = data;

我有以下课程

public class RestResponseDto {

    private Boolean status;
    private Object data;
    private Object error;


    public RestResponseDto(Boolean status, Object data, Object error) {
        this.status = status;
        this.data = data;
        this.error = error;
    }

         //Getters and setters

}
我试图点击我的另一个RESTAPI(GET请求)并将响应映射到这个类

RestTemplate restTemplate = new RestTemplate();
        RestResponseDto result = restTemplate.getForObject(uri, RestResponseDto.class);
但我得到了以下错误:

Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not construct instance of xxx.xxx.xxx.xxx: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?);

为了将响应映射到自定义DTO,您应该为给定DTO设置默认构造函数。在
ResponsedTo
中,没有定义默认构造函数。因此,将其更改为:

public class RestResponseDto {

    private Boolean status;
    private Object data;
    private Object error;

    public RestResponseDto() {
    }
    public RestResponseDto(Boolean status, Object data, Object error) {
        this.status = status;
        this.data = data;
        this.error = error;
    }
         //Getters and setters
}

你有一个默认的无参数构造函数吗?这是一个可怕的建议。你不能随意地加入一个默认的构造函数,除非你想确定你会引入一些bug。要么只使用默认构造函数,要么让它设置默认值,要么根本没有默认值,然后找到另一种方法来注入值。