簡體   English   中英

Javadoc 警告:使用 Lombok @Builder 時沒有類型的 @param

[英]Javadoc warning: no @param for type when using Lombok @Builder

從源(delomboked)生成 javadoc 時,我收到以下由 Lombok 的@Builder生成的構建器類的警告

[ERROR] Error while creating javadoc report: 
Exit code: 1 - /path/to/project/ProjectData.java:85: warning: no @param for type
        public ProjectData.ProjectDataBuilder type(final ProjectType type) {

這是導致警告的 delomboked class 的一部分:

/**
 * @return {@code this}.
 */
@java.lang.SuppressWarnings("all")
public ProjectData.ProjectDataBuilder type(final ProjectType type) {
    this.type = type;
    return this;
}

這是假定的正確的、不產生警告的 javadoc - 存在@param

/**
 * @param type some meaningful description
 * @return {@code this}.
 */
@java.lang.SuppressWarnings("all")
public ProjectData.ProjectDataBuilder type(final ProjectType type) {
    this.type = type;
    return this;
}

有沒有辦法讓 de-lombok 也生成這些? 我的項目中有很多這樣的警告,它們掩蓋了所有相關的實際錯誤。

使用最新的 Lombok 版本¹,delombok 會將放置在字段 Javadoc 中的@param復制到相應的構建器方法。

這是現有@Getter/@Setter功能的擴展,該功能已將@param / @return移動到相應的 setter/getter。

您還可以選擇使用-- SETTER -- / -- GETTER -- @param完全自定義的文檔(在這種情況下,@param 和@return標記必須在相應的部分中):

@Builder
@Data
@AllArgsConstructor
public class LombokJavadoc {
    /**
     * my nice field
     *
     * -- SETTER --
     * sets the something
     *
     * @param something a nice value
     * -- GETTER --
     * access for something
     *
     * @return a nice value
     */
    private String something;
}

生成:

public class LombokJavadoc {
    /**
     * my nice field
     */
    private String something;


    @java.lang.SuppressWarnings("all")
    public static class LombokJavadocBuilder {
        […]

        /**
         * sets the something
         *
         * @param something a nice value
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        public LombokJavadoc.LombokJavadocBuilder something(final String something) {
            this.something = something;
            return this;
        }
    }

    […]

    /**
     * access for something
     *
     * @return a nice value
     */
    @java.lang.SuppressWarnings("all")
    public String getSomething() {
        return this.something;
    }

    /**
     * sets the something
     *
     * @param something a nice value
     */
    @java.lang.SuppressWarnings("all")
    public void setSomething(final String something) {
        this.something = something;
    }
    
    […]
}

¹ 這似乎實際上已在 PR #2008中實現,它是v1.18.6的一部分

暫無
暫無

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

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