Как я могу автоматически обновить Javadoc при изменении подписи метода в Eclipse? - PullRequest
24 голосов
/ 14 февраля 2010

Я использую Eclipse IDE для моего проекта Java.

У меня есть одна проблема. У меня есть методы в моем проекте, которые имеют комментарии javadoc, такие как:

/**
 * Retruns the string representation of a input stream
 * @param in
 * @return
 * @throws IOException
 */
public static String getStringFromInputStream (InputStream in) throws IOException {
    StringBuffer out = new StringBuffer();
    byte[] b = new byte[4096];
    for (int n; (n = in.read(b)) != -1;) {
        out.append(new String(b, 0, n));
    }
    return out.toString();
}

Теперь я хочу знать, есть ли какой-нибудь способ, когда всякий раз, когда я делаю изменения в подписи моего метода, эти изменения автоматически отражаются в javadoc.

Ответы [ 6 ]

11 голосов
/ 14 февраля 2010

Eclipse предоставляет довольно хорошие опции для обеспечения корректности Javadoc, кроме упомянутого рефактора Rename JesperE:

  • Операция рефактора Изменить метод подписи также изменяет javadoc (добавлять / удалять необходимые теги). Вы должны использовать это или Rename , чтобы изменить код, который уже используется.
  • Если вы активируете Добавление тегов Javadoc на Параметры / Java / Редактор / Страница , тогда Eclipse генерирует правильную заглушку javadoc после ввода /** + Enter перед методом.

Вы также можете установить параметры компилятора для проверки отсутствующих тегов javadoc на Предпочтения / Java / Компилятор / Javadoc . В этом случае вы получаете предупреждения от компилятора об отсутствующих / дополнительных тегах, и у вас есть быстрое исправление ( Ctrl + 1 ) для их исправления. Это хороший вариант для обеспечения правильности существующих Javadocs в долгосрочной перспективе.

4 голосов
/ 14 февраля 2010

Я не знаю ни одного способа автоматической синхронизации заголовка Javadoc, но если вы переименуете параметр, используя Ctrl-1 + Rename in file, заголовок Javadoc будет соответствующим образом переименован.

3 голосов
/ 03 апреля 2014

Рефакторинга с опцией «Обновить ссылки» недостаточно. Необходимо убедиться, что «Обрабатывать комментарии Javadoc» отмечен в «Окно» -> «Настройки», «Java -> Компилятор» -> «Javadoc» Настройте страницу настроек так, как вы предпочитаете, и она будет работать нормально.

2 голосов
/ 16 февраля 2016

Просто нажмите ALT + SHIFT + j на имени метода и удалите лишние строки:

ДО:

/**
 * Copies all the details from the passed template into the passed new
 * header.
 *
 * @param pNewHeader
 */
private void doCopy(int pNewHeader, int pTemplate) {

ПОСЛЕ:

/**
 * Copies all the details from the passed template into the passed new
 * header.
 *
 * @param pNewHeader   << DELETE
 */                    << DELETE
/**                    << DELETE
 * @param pNewHeader
 * @param pTemplate
 */
private void doCopy(int pNewHeader, int pTemplate) {
1 голос
/ 30 января 2015

Как я прокомментировал сценарий, в котором рефактор не будет работать

Все ответы относятся к опции рефакторинга. Но что, если я добавил новый параметр или удалил параметр из сигнатуры метода. В таком случае, как обновить Javadoc?

Я нашел обходной путь, но он все еще не автоматизирован и не подходит для большого количества изменений.

Обходной путь,
1. удалите комментарий javadoc и сделайте его простым комментарием, то есть обновите /**' and change it to just / * '.
2. Теперь еще раз чуть выше подписи / объявления метода введите /** и нажмите enter. Это обновит параметры и вернет информацию. Теперь просто переместите строки описания из старого комментария в новый.
3. Для этого можно использовать Alt + Вверх / Вниз стрелки.
4. Готово удалить старый комментарий Javadoc после того, как он скопирован в правильное место.

1 голос
/ 14 февраля 2010

Нажмите Atl+Shift+R и измените

...