我希望A_CONSTANT
中的字符串成为ClassB
的评论的一部分:
package my.stuff;
public class ClassA {
/** Shows the string just fine: {@value} */
public static final String A_CONSTANT = "show this in comments";
}
package my.stuff;
/**
* Does not give me the string: {@value my.stuff.ClassA#A_CONSTANT}
* Neither does this: {@value ClassA#A_CONSTANT}
*
* @see my.stuff.ClassA#A_CONSTANT
*/
public class ClassB {
}
{@value}
中的ClassA
在悬停在常量名称上时向我显示字符串内容;没关系。
@see
标记通过链接到ClassB
在A_CONSTANT
中完成其工作。
然而,{@value ...}
中的两次ClassB
次尝试失败:当我将鼠标悬停在{@value ...}
上时,我会看到文字A_CONSTANT
部分,而不是ClassB
的内容。< / p>
documentation告诉我使用以下符号,我认为我做过:{@value package.class#field}
。
this question的答案也建议使用上述表示法。
This与我的问题基本相同,但未得到回答。
如何在其他类的注释中显示常量的字符串内容?
我在Windows 7 x86上使用Eclipse Juno。
提前致谢。
修改
在我的项目{@value my.stuff.ClassA#A_CONSTANT}
上运行javadoc.exe时,解析为正确的字符串。
这就是为什么我稍微改变了一下这个问题:
为什么Eclipse在鼠标悬停时不显示常量字符串,而javadoc.exe没有问题呢?
答案 0 :(得分:8)
这似乎是Eclipse中的一个错误。从the docs稍微修改示例:
public class TestClass {
/**
* The value of this constant is {@value}.
*/
// In Eclipse this shows: The value of this constant is "<script>".
public static final String SCRIPT_START = "<script>";
/**
* Evaluates the script starting with {@value TestClass#SCRIPT_START}.
*/
// In Eclipse this shows: Evaluates the script starting with {@value TestClass#SCRIPT_START}.
public void test1() {
/**
* Evaluates the script starting with {@value #SCRIPT_START}.
*/
// In Eclipse this shows: Evaluates the script starting with "<script>".
public void test2() {
}
}
为此已经使用eclipse创建了bug。
答案 1 :(得分:-1)
在您链接到here的javadoc参考页面上,&#34;可以使用标签的位置&#34;它引用@value可以在字段上使用,但不能在类上使用。在B类中,javadoc在类上,这是无效的。可能eclipse严格遵循该评估,而javadoc.exe对于放置更宽松。