В настоящее время я ссылаюсь на методы в других классах с этим синтаксисом Javadoc:
@see {@link com.my.package.Class#method()}
И в том, что я понимаю из документации, это правильный способ сделать это. Но теперь самое смешное или неприятное. Когда я генерирую этот javadoc, я в первую очередь получаю следующую ошибку:
warning - Tag @see:illegal character: "123" in "{@link com.my.package.Class#method()}"
warning - Tag @see:illegal character: "64" in "{@link com.my.package.Class#method()}"
warning - Tag @see: reference not found: {@link com.my.package.Class#method()}
Сгенерированный HTML-код этого:
"," <code>com.my.package.Class#method()}</code> ","
И конечно у меня нет ссылки. Может кто-нибудь сказать мне, что происходит, и какие-либо советы о том, как это исправить?
Согласно таблице ASCII символы 123 и 64 для wold представляют {и @, так почему же эти символы недопустимы, если этот синтаксис правильный в соответствии с документацией?
com.my.package.Class
в класс этот JavaDoc написан? Ссылки не найден кажется странным. С другой стороны, я никогда не использовал их вместе, но есть шанс, что@see
и@link
конфликтовать друг с другом, принимая тот факт, что он@see
генерирует свою собственную секунду, меня это не удивит.@see
тега в вашем javadoc вы указали необработанную гиперссылку . Чтобы исправить это, в этом случае оберните гиперссылку в HTML-элемент привязки:/** @see <a href="http://example.com">Example</a> */
Ответы:
Для тега Javadoc
@see
вам не нужно использовать@link
; Javadoc создаст для вас ссылку. ПытатьсяВот больше информации о
@see
.источник
@link
в других местах, которые Javadoc еще не превратили в ссылку, например, в описании@param
, в описании@return
, в основной части описания и т. Д.Помимо
@see
более общего способа ссылки на другой класс и, возможно, метод этого класса{@link somepackage.SomeClass#someMethod(paramTypes)}
. Это имеет то преимущество, что его можно использовать в середине описания Javadoc.Из документации javadoc (описание тега @link) :
источник
Таким образом, решение исходной проблемы состоит в том, что вам не нужны ссылки "@see" и "{@link ...}" в одной строке. Тег @link является самодостаточным, и, как уже было отмечено, вы можете поместить его в любое место блока javadoc. Таким образом, вы можете смешать два подхода:
источник
{@link }
отлично работает в однострочном комментарии Javadoc. Возможно, вы ссылаетесь на тот факт, что они не работают с комментариями, начинающимися с//
?/** */
является Javadoc и необходим для любых функций Javadoc.