gpt4 book ai didi

Eclipse 中的 javadoc @value 注释问题

转载 作者:行者123 更新时间:2023-11-29 08:31:45 26 4
gpt4 key购买 nike

我在这里读了很多书,但没有找到答案。我遇到了 @value Javadoc 注释的问题。

IDE:Eclipse Oxygen.1a 版本 (4.7.1a)

如果我将它放在 String 变量上,它就可以正常工作,但如果变量是 Integer,那么一切都不好。

这是一段代码,其中变量并排放置:

/**
* Default delimiter. {@value #DEFAULT_LIST_SEPARATOR}
*/
public final static String DEFAULT_LIST_SEPARATOR = ",";

/**
* Default int value. {@value #START_VALUE}
*/
public final static Integer START_VALUE = 20000;

对于第一个变量描述正确显示,但对于另一个,我只看到{@value #START_VALUE}

伙计们,我哪里错了?

最佳答案

如果使用 Integer 而不是 int,则 @value 不会解析。

在您的示例中,常量 START_VALUEInteger 类型的对象,它包含值 20000。所以问题是,@value 是否支持自动装箱? Java Language Specification does not cover Javadoc comments . Javadoc 似乎没有正式的规范,只有以下对 @value 的简单描述没有回答问题:

Displays constant values.

如果使用 Oracle Java SDK 的 Javadoc 工具 生成 HTML 作为事实上的标准@value 允许用于 int,但不适用于 Integer 类型。 Oracle的Java 8和Java 9 Development Kit的Javadoc工具报同样的错误:

error: value does not refer to a constant
* Default int value. {@value #START_VALUE}
^

如果使用 {@value} 而不是 {@value #START_VALUE} 错误变为 error: {@value} not allowed here .

让我们来看看以下案例:

public class JavadocValue {

/** STRING = {@value} */
public final static String STRING = "lorem ipsum";

/** STRING_CONCATENATION = {@value} */
public final static String STRING_CONCATENATION = "lorem" + " ipsum";

/** STRING_COMPUTATION = {@value} */
public final static String STRING_COMPUTATION = System.getProperty("path.separator");

/** INT = {@value} */
public final static int INT = 42;

/** INT_COMPUTATION = {@value} */
public final static int INT_COMPUTATION = (20 + 1) * 2;

/** INTEGER = {@value} */
public final static Integer INTEGER = 42;

/** INTEGER_COMPUTATION = {@value} */
public final static Integer INTEGER_COMPUTATION = Integer.valueOf("42");

/** ENUM = {@value} */
public final static MyEnum ENUM = MyEnum.VALUE_B;
public enum MyEnum { VALUE_A, VALUE_B };

}

在 Eclipse @value 中解析为 Oracle Javadoc 工具:

STRING = "lorem ipsum"
STRING_CONCATENATION = "lorem ipsum"
STRING_COMPUTATION = [error/unresolved]
INT = 42
INT_COMPUTATION = 42
INTEGER = [error/unresolved]
INTEGER_COMPUTATION = [error/unresolved]
ENUM = [error/unresolved]

结论:@value 用于原始类型或String 的常量

关于Eclipse 中的 javadoc @value 注释问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47480314/

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