[英]Javadoc "cannot find symbol" error when using Lombok's @Builder annotation
[英]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;
}
[…]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.