@@数据未为静态嵌套类创建构造函数

问题描述 投票:1回答:1

我是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")));
    }
}
java spring-boot maven lombok
1个回答
0
投票

Lombok @Data@AllArgsConstructor没问题。

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

© www.soinside.com 2019 - 2024. All rights reserved.