Javadoc ссылка на метод в другом классе

В настоящее время я ссылаюсь на методы в других классах с этим синтаксисом 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 представляют { и @, так почему же эти символы недействительны, когда этот синтаксис верен в соответствии с документацией?

3 ответов


для тега Javadoc @see, вам не нужно использовать @link; Javadoc создаст для вас ссылку. Попробуй!--5-->

@see com.my.package.Class#method()

вот больше информации о @see.


помимо @see, более общий способ ссылки на другой класс и, возможно, метод этого класса -{@link somepackage.SomeClass#someMethod(paramTypes)}. Это имеет преимущество использования в середине описания javadoc.

С документация javadoc (описание тега @link):

этот тег очень похож на @see-оба требуют одинаковых ссылок и принимают точно такой же синтаксис для пакета.класс#член и метка. Главное отличие в том, что {@link} генерирует встроенную ссылку, а не размещать ссылку в разделе "см. также". Кроме того, тег {@link} начинается и заканчивается фигурными скобками, чтобы отделить его от остального текста в строке.


таким образом, решение исходной проблемы заключается в том, что вам не нужны как "@see", так и "{@link...}" ссылки в той же строке. Тег "@link " самодостаточен и, как уже отмечалось, вы можете поместить его в любом месте блока javadoc. Таким образом, вы можете смешать два подхода:

/**
 * some javadoc stuff
 * {@link com.my.package.Class#method()}
 * more stuff
 * @see com.my.package.AnotherClass
 */