gpt4 book ai didi

java - @Data 没有为静态嵌套类创建构造函数

转载 作者:行者123 更新时间:2023-12-01 14:31:55 34 4
gpt4 key购买 nike

我是 Java 世界的新手,需要您的帮助来解决一个问题。

今天我创建了一个 maven spring 项目,它给出了 "The Constructor is undefined" 错误。

但是我的类有 @Data 注释,我还添加了 @AllArgsConstructor 来生成所有参数构造函数。尽管如此,它仍在抛出错误。

手动创建所有参数构造函数后,错误消失了。不明白为什么说了注解还要创建构造函数?

下面是我的代码片段

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;

#import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;

import javax.inject.Inject;
import javax.inject.Named;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

@Named
@Path("/")
public class HelloEndpoint {
@Inject
NamedParameterJdbcTemplate jdbcTemplate;

@GET
public String hello() {
return "Hello World!";
}

@Data
@AllArgsConstructor
static class Result {
private final int left;
private final int right;
private final long answer;
}

// SQL sample
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("calc")
public Result calc(@QueryParam("left") int left, @QueryParam("right") int right) {
MapSqlParameterSource source = new MapSqlParameterSource()
.addValue("left", left)
.addValue("right", right);
return jdbcTemplate.queryForObject("SELECT :left + :right AS answer", source,
(rs, rowNum) -> new Result(left, right, rs.getLong("answer")));
}
}

最佳答案

Lombok @Data@AllArgsConstructor 没有任何问题。

请从您的 Result 类中删除 final 键,您也将能够访问 setter 和构造函数。

关于java - @Data 没有为静态嵌套类创建构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62367607/

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