Деталі різниці між @see та @inheritDoc


87

Я переглянув посилання на JavaDoc , і хоча я розумію основну різницю між @see(різними посиланнями) та {@inheritDoc}(експортування суперкласу JavaDoc коментар), мені потрібно пояснити, як це насправді реалізовано.

У середовищі Eclipse IDE, коли я вибираю «Створити коментарі до елементів» для успадкованого методу (від інтерфейсу або перевизначення toString () тощо), він створює такий коментар

/* (non-Javadoc)
 * @see SomeClass#someMethod()
 */

Якщо я зобов'язаний плодоовочевого JavaDoc я повинен залишити його в цьому, замініть @seeз {@inheritDoc}, або перетворити його в сумлінному JavaDoc як такої:

/**
 * {@inheritDoc}
 */

І коли я це роблю, чи повинен я все ще зберігати прапор методу class #?

Відповіді:


142

Перш за все, вам слід видалити оригінальний шаблон затемнення, тому що це просто галасливий мотлох. Або помістіть значущі документи, або взагалі нічого не розміщуйте. Але марне переглядання очевидних шаблонів IDE просто захаращує код.

По-друге, якщо від вас вимагається створення javadoc, тоді ви повинні зробити коментар з самого початку /**. В іншому випадку це не javadoc.

Нарешті, якщо ви перевизначаєте, то вам слід використовувати @inheritDoc(припускаючи, що ви хочете додати до оригінальних документів, як @seh зазначив у коментарі, якщо ви просто хочете продублювати оригінальні документи, тоді вам нічого не потрібно). @seeслід реально використовувати лише для посилання на інші суміжні методи.


75
Ви повинні використовувати лише @inheritDocякщо ви збираєтеся додати до оригінальної документації суперкласу. Якщо ви просто хочете, щоб він був продубльований, Javadoc це вже зробить, зазначивши, що документація суперкласу застосовується до перевизначеного методу підкласу, оскільки підклас не надав додаткової документації.
seh

4
Я створив документи з і без @inheritDocі не бачу жодної різниці. Навіть без @inheritDoc, я бачу, що Javadoc похідного класу був доданий до базового класу.
randominstanceOfLivingThing

Я прийшов сюди, тому що checkstyle скаржиться "метод, здається, не призначений для розширення". Хорошою ідеєю може бути використання, @inheritDocа потім додавання певної документації, що стосується реалізації, наприклад, як вона реалізує / перезаписує батьківський метод, і особливо ЧОМУ це робиться так, як це робиться.
Бен,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.