簡體   English   中英

PMD 錯誤:在 Lombok Builder 中覆蓋某些方法時的 AccessorMethodGeneration

[英]PMD error: AccessorMethodGeneration when overriding some method in Lombok Builder

我有以下 class 應該使用 Lombok @Builder

import lombok.Builder;
import lombok.Getter;

@Getter
@Builder(toBuilder = true)
public class Foo {
    private String myName;
    private int myAge;
    
    public static class FooBuilder {

        // I'm overriding this method to add some validation logic
        public FooBuilder myName(String myName) {
            // some simple logic to validate "myName"

            this.myName= myName;
            return this;
        }
    }
}

我想在設置之前添加一些簡單的邏輯來驗證myName字段。 但我不想為myAge做。 所以myAge字段的 builder 和FooBuilder構造函數將由 Lombok 生成。

這使得 PMD 拋出錯誤:

規則:AccessorMethodGeneration 優先級:3 避免自動生成的方法訪問私有字段和內部/外部類的方法。

我應該抑制這個錯誤還是有更好的方法來實現我想要的?

創建規則AccessorClassGenerationAccessorMethodGeneration是為了幫助 Android (,) 開發。 當 DEX 格式存在限制時。 這些生成的類/方法計入當時可能的總類/方法(64k)。

如果您不是在開發舊的 Android 應用程序,那么您可以從您的規則集中完全刪除這些規則。 例如,今天有Multidex可能允許在您的應用程序中使用超過 64k 的方法。

此外,由於 Java 11,java 編譯器不再生成這些訪問器類和方法,請參閱JEP 181:基於嵌套的訪問控制

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM