AdSense

網頁

2019/11/5

Lombok @Builder 編譯錯誤 compile error

今天使用lombok的@Builder時,啟動專案時出現下面編譯錯誤。

> Task :compileJava
../demo/src/main/java/com/abc/demo/dto/MyClass.java:12: error: constructor MyClass in class MyClass cannot be applied to given types;
@Builder
^
  required: no arguments
  found: BrowserType,Integer,Integer
  reason: actual and formal argument lists differ in length
Note: ...

1 error

> Task :compileJava FAILED

造成錯誤的類別Lombok設定如下。

MyClass

@Data
@Builder
@NoArgsConstructor
public class MyClass {
    ...
}

解決方式一是移除@NoArgsConstructor

MyClass

@Data
@Builder
public class MyClass {
    ...
}

解決方式二是加上@AllArgsConstructor

MyClass

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MyClass {
    ...
}

錯誤的原因可能是因為@Builder自帶的全參數建構子生成效果被@NoArgsConstructor覆寫掉了所導致。

參考:

沒有留言:

AdSense