gpt4 book ai didi

Javadoc 警告 : no @param for type when using Lombok @Builder

转载 作者:行者123 更新时间:2023-12-05 04:36:30 35 4
gpt4 key购买 nike

当从源(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) {

这是引起警告的 delmboked 类的一部分:

/**
* @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@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 的一部分

关于Javadoc 警告 : no @param for type when using Lombok @Builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70838620/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com