Почему Eclipse не обрабатывает значение @value при использовании в другом классе?
Я хочу, чтобы строка из 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
.
документация говорит мне использовать следующие обозначения, которые, я думаю, я сделал: {@value package.class#field}
.
Ответ на этот вопрос также рекомендует использовать приведенные выше обозначения.
Это в основном тот же вопрос, что и мой, но на него не ответил.
Как я могу показать содержимое строки константы в комментариях другого класса?
Я использую Eclipse Juno для Windows 7 x86.
Спасибо заранее.
Edit:
При запуске javadoc.exe в моем проекте {@value my.stuff.ClassA#A_CONSTANT}
разрешается правильная строка.
Вот почему я немного изменил вопрос:
Почему Eclipse не показывает постоянную строку при наведении курсора, в то время как у javadoc.exe нет проблем с ней?
![Mouse over in Eclipse: Constant's string is not shown]()
Ответы
Ответ 1
Это будет ошибкой в Eclipse. Немного измените пример документы:
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() {
}
}
A bug была создана с помощью eclipse для этого.
Ответ 2
На странице ссылок javadoc, которую вы связали с здесь, в разделе "Где можно использовать теги" он ссылается на то, что значение @value можно использовать на поле, но не на класс. В классе B javadoc находится в классе, что является недопустимым. Возможно, что затмение строго следует этой оценке, а javadoc.exe более мягко относится к размещению.