Ответ 1
Для тега Javadoc @see
вам не нужно использовать @link
; Javadoc создаст для вас ссылку. Попробуйте
@see com.my.package.Class#method()
В настоящее время я ссылаюсь на методы в других классах с этим синтаксисом 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 представляют {и @, так почему же эти символы не действительны, если этот синтаксис верен в соответствии с документацией?
Для тега Javadoc @see
вам не нужно использовать @link
; Javadoc создаст для вас ссылку. Попробуйте
@see com.my.package.Class#method()
Помимо @see
, более общий способ ссылаться на другой класс и, возможно, на метод этого класса {@link somepackage.SomeClass#someMethod(paramTypes)}
. Это полезно для использования в середине описания javadoc.
Из документации javadoc (описание тега @link):
Этот тег очень похож на @see - оба требуют одни и те же ссылки и принимают точно такой же синтаксис для элемента package.class # и метки. Основное отличие состоит в том, что {@link} генерирует ссылку в строке, а не помещает ссылку в раздел "См. Также". Кроме того, тег {@link} начинается и заканчивается фигурными фигурными скобками, чтобы отделить его от остальной части встроенного текста.
Итак, решение исходной проблемы заключается в том, что вам не нужны ссылки "@see" и "{@link...}" в той же строке. Тег "@link" является самодостаточным и, как уже отмечалось, вы можете поместить его в любом месте блока javadoc. Таким образом, вы можете смешивать два подхода:
/**
* some javadoc stuff
* {@link com.my.package.Class#method()}
* more stuff
* @see com.my.package.AnotherClass
*/