Ответ 1
Нажмите Atl+Shift+R
и измените
Я использую 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.
Нажмите Atl+Shift+R
и измените
Eclipse предоставляет довольно хорошие возможности для обеспечения правильности javadoc, кроме рефакторинга Rename JesperE, упомянутого:
/**
+ Enter перед методом.Вы также можете установить параметры компилятора для проверки отсутствующих тегов javadoc на Preferences/Java/Compiler/Javadoc. В этом случае вы получаете предупреждения от компилятора о отсутствующих/дополнительных тегах, и у вас есть quickfix (Ctrl+1) для их исправления. Это хороший вариант для обеспечения правильности существующих javadocs в конечном итоге.
Я не знаю о возможности автоматической синхронизации заголовка Javadoc, но если вы переименуете параметр с помощью Ctrl-1
+ Rename in file
, заголовок Javadoc соответствующим образом переименовывается.
Рефакторинг с опцией "Обновить ссылки" недостаточен. Вы должны убедиться, что "Обработать комментарии Javadoc" отмечен в Window- > Preferences, Java- > Compiler- > Javadoc. Измените предпочтительную страницу, как вы предпочитаете, и она будет работать нормально.
Просто нажмите 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) {
Как я прокомментировал сценарий, в котором рефактор не будет работать
Все ответы относятся к опции рефакторинга. Но что, если бы я добавил новый параметр или удалил параметр из подписи метода. В этом случае, как обновить javadoc?
Существует обходное решение, которое я нашел, но да, это еще не автоматизированный процесс и не подходит для большого количества изменений.
Обходной путь - это,
1. удалите комментарий javadoc и сделайте простой комментарий, например, обновите /**' and change it to just
/*.
2. Теперь еще раз над сигнатурой/декларацией метода введите /**
и нажмите enter. Он будет повторно заполнять обновленные параметры и возвращать информацию. Теперь просто переместите строки описания из старого комментария в новый.
3. Для достижения этой цели вы можете использовать стрелки Alt + Up/Down.
4. Завершите удаление старого комментария javadoc после его скопирования в правильном месте.