我正在尝试使用SpringBoot
和Lombok
开发一个Web应用程序,以减少样板代码。
虽然带注释的类工作正常,但目标类却出现编译错误。
我不是试图通过IDE进行编译,而是直接使用gradlew构建通过命令行进行编译。
关于如何将Lombok
与gradle
集成以构建和生成jar的任何建议都会很有帮助。
Git存储库:https://github.com/ashubisht/sample-sbs.git
我得到的错误是:
\sample-sbs\src\main\java\com\sample\springboot\Controllers\RestControllerClass.java:28: error: constructor Customer in class Customer cannot be applied to given types; customerDAO.insert(new Customer(1, "Utkarsh", 25)); ^ required: no arguments found: int,String,int reason: actual and formal argument lists differ in length 1 error
使用@Data注释对客户类进行注释。
答案 0 :(得分:0)
在当前的lombok版本1.18.0中,有an issue with Gradle 4.9,它将在即将发布的lombok版本1.18.2中得到修复。
如果您使用的是Gradle 4.9,请降级Gradle,等待lombok 1.18.2,或使用current lombok edge release。
答案 1 :(得分:0)
在您的Customer
类中,您要在构造函数中初始化的所有字段都是非最终的。
由于@Data
注释仅添加了@RequiredArgsConstructor
,因此您不能在构造函数中初始化非最终字段,而不用@AllArgsConstructor
显式注释此类。
因此,您需要使用@AllArgsConstructor
注释类,或使用setter初始化对象。