构造函数 SomeClass() 已在 class SomeClass 中定义
constructor SomeClass() is already defined in class SomeClass
我刚刚将 Spring Boot 1.5.13 应用程序(使用 Lombok)升级到 Spring Boot 1.5.14,但它现在无法编译并出现以下类型的错误:
constructor SomeClass() is already defined in class SomeClass
对于我的每个 POJO,例如
@Data
@NoArgsConstructor
public class SomeClass {
private String someProperty;
}
这是 Lombok 1.6.22 中的错误;将龙目岛升级到 1.18.0:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
<scope>provided</scope>
</dependency>
或者,作为变通方法,更改注释的顺序:
@NoArgsConstructor
@Data
public class SomeClass {
private String someProperty;
}
详情:
此错误的根本原因是 Lombok 1.16.22 中的错误。 Spring Boot 1.5.13 使用没有此错误的 Lombok 1.16.20,但 Spring Boot 1.5.14 将 Lombok 依赖项更新为 1.16.22 -- 不幸的是,Lombok 项目不符合SEMVER 然后触发了这个错误。
即使在最新版本
上,我也遇到了这个问题
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
将我的成员变量标记为 final 后一切正常。
@RequiredArgsConstructor
生成一个带有必需参数的构造函数,其中必需的参数是最终字段和用 @NonNull
注释的字段(稍后详细介绍)
我使用以下方法重现了同样的问题:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
而且,就我而言,这是 @NoArgsConstructor
注释和 @Data
之间的冲突。
后来的结果是:
@Data implies @NoArgsConstructor
所以,the advice 删除了 @NoArgsConstructor
注释,但留下 @Data
对我很有帮助。
我刚刚将 Spring Boot 1.5.13 应用程序(使用 Lombok)升级到 Spring Boot 1.5.14,但它现在无法编译并出现以下类型的错误:
constructor SomeClass() is already defined in class SomeClass
对于我的每个 POJO,例如
@Data
@NoArgsConstructor
public class SomeClass {
private String someProperty;
}
这是 Lombok 1.6.22 中的错误;将龙目岛升级到 1.18.0:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
<scope>provided</scope>
</dependency>
或者,作为变通方法,更改注释的顺序:
@NoArgsConstructor
@Data
public class SomeClass {
private String someProperty;
}
详情:
此错误的根本原因是 Lombok 1.16.22 中的错误。 Spring Boot 1.5.13 使用没有此错误的 Lombok 1.16.20,但 Spring Boot 1.5.14 将 Lombok 依赖项更新为 1.16.22 -- 不幸的是,Lombok 项目不符合SEMVER 然后触发了这个错误。
即使在最新版本
上,我也遇到了这个问题<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
将我的成员变量标记为 final 后一切正常。
@RequiredArgsConstructor
生成一个带有必需参数的构造函数,其中必需的参数是最终字段和用 @NonNull
注释的字段(稍后详细介绍)
我使用以下方法重现了同样的问题:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
而且,就我而言,这是 @NoArgsConstructor
注释和 @Data
之间的冲突。
后来的结果是:
@Data implies @NoArgsConstructor
所以,the advice 删除了 @NoArgsConstructor
注释,但留下 @Data
对我很有帮助。