【发布时间】:2020-10-03 15:33:24
【问题描述】:
我是 Java 世界的新手,需要您的帮助来解决一个问题。
今天我创建了一个 maven spring 项目,它给出了"The Constructor is undefined" 错误。
但我的班级有@Data 注释,我还添加了@AllArgsConstructor 来生成所有参数构造函数。尽管如此,它仍在抛出错误。
手动创建所有参数构造函数后,错误消失了。我不明白为什么我在提到注解之后还要创建一个构造函数?
下面是我的代码sn-p
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")));
}
}
【问题讨论】:
-
您的 pom.xml 或 IDE Lombok 设置可能有问题。您是否按照projectlombok.org/setup/overview 的所有指示进行操作?
标签: java spring-boot maven lombok