gpt4 book ai didi

java - 无法构造 `class name` 的实例(尽管至少在 Creator 上存在)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:31:16 24 4
gpt4 key购买 nike

我有以下类,我将其用作请求负载:

public class SampleRequest {

private String fromDate;
private String toDate;

// Getters and setters removed for brevity.
}

我正在尝试将它与下面的这个资源一起使用(只是试图将它打印到屏幕上以查看发生的事情):

@PostMapping("/getBySignatureOne")
public ResponseEntity<?> getRequestInfo(@Valid @RequestBody SampleRequest signatureOneRequest) {

System.out.println(signatureOneRequest.getToDate);
System.out.println(signatureOneRequest.getFromDate);
}

这是我发送的 JSON 请求:

{
"fromDate":"2019-03-09",
"toDate":"2019-03-10"
}

这是我得到的错误:

Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `com.test.app.payload.SampleRequest` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('fromDate'); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.test.app.payload.SampleRequest` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('fromDate')
at [Source: (PushbackInputStream); line: 1, column: 2]]

我很想知道这里出了什么问题,我怀疑这是构造函数的问题,或者我在某处遗漏了一些注释,但老实说我不确定哪里出了问题。

最佳答案

您需要一个包含所有参数的构造函数:

public SampleRequest(String fromDate, String toDate) {

this.fromDate = fromDate;
this.toDate = toDate;

}

或者使用来自 lombok 的 @AllArgsConstructor@Data

关于java - 无法构造 `class name` 的实例(尽管至少在 Creator 上存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55032293/

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