Android & Javadoc: @inheritDoc не работает - PullRequest
4 голосов
/ 03 августа 2010

Каждый раз, когда я использовал тег @inheritDoc в javadoc, я вижу следующее предупреждение (пример):

@inheritDoc used but getCount() does not override or implement any method.

Кто-нибудь знает, как этого избежать? Я уверен, что методы реализуют / переопределяют другой метод, потому что я также установил тег @override, и Eclipse не жалуется на это.

У меня было похожее предупреждение, помечающее @link, где ссылка не найдена. Это решается с помощью абсолютных идентификаторов (например, android.content.Intent вместо Intent). Есть ли подобное решение этой проблемы?

Ответы [ 3 ]

5 голосов
/ 03 августа 2010

Это немного странно! Вещи, которые я бы искал:

  • Убедитесь, что метод getCount() действительно переопределяет метод в некотором классе предков. (Я знаю ... @Override ... но все равно проверь!)

  • Убедитесь, что у метода, который вы переопределяете, действительно есть какой-то Javadoc.

  • Убедитесь, что класс, содержащий метод, который вы переопределяете, находится в пути к исходному коду. Если это не так, утилита javadoc не сможет извлечь соответствующий материал из исходного файла родительского класса для включения в javadoc для дочернего метода.

(а ошибки в утилите javadoc - еще одна возможная причина ...)

EDIT

Исходный путь javadoc устанавливается с помощью параметра «-sourcepath» команды, как описано здесь . По сути, вам нужно сообщить утилите javadoc, где находится ZIP-файл, содержащий исходный код классов Android.

2 голосов
/ 13 августа 2010

Если суперкласс является классом в сторонней библиотеке, вам нужен исходный код, чтобы аннотация @inheritDoc могла знать, где его найти.

Например, если вы пытаетесьнаследовать документы от класса / интерфейса в библиотеках J2SE, вы можете сделать это, разархивировав файл src.zip, который поставляется вместе с SDK, и добавив его путь к -sourcepath.Когда javadoc запускается для вашего кода, он загружает комментарии к документам из этих исходных файлов по мере необходимости.

1 голос
/ 03 августа 2010

В некоторых версиях Java есть ошибки, которые могут привести к этим ошибкам.Поэтому я думаю, что первое, что нужно сделать, - это перейти на последнюю версию Java и повторить попытку.

Не думаю, что эта проблема связана с вашей проблемой @link.Проблема @link ожидается, когда вы ссылаетесь на класс, который фактически нигде не упоминается в коде класса, если только вы не используете полную ссылку на пакет для ссылающегося класса.

...