[英]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.