конструктор SomeClass () уже определен в классе SomeClass - PullRequest
0 голосов
/ 04 июля 2018

Я только что обновил свое приложение 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;
}

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Я сталкивался с этой проблемой даже в самой последней версии, т.е.

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.6</version>
    <scope>provided</scope>
</dependency>

После того, как мои переменные-члены помечены как окончательные, все заработало.

@RequiredArgsConstructor создает конструктор с необходимыми аргументами, где обязательными аргументами являются конечные поля и поля, помеченные @NonNull (подробнее об этом позже)

0 голосов
/ 04 июля 2018

Это ошибка в Lombok 1.6.22; обновить Lombok до 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 , который затем вызвал эту ошибку.

...