Как автоматически создавать комментарии для геттера / сеттера на основе комментариев полей в Eclipse?

Я хочу, чтобы Eclipse автоматически генерировал комментарии Javadoc для моих методов getter и setter на основе ранее определенных комментариев для полей. Как я могу достичь этого?

Background: политика в нашей компании-комментировать каждый метод и поле (даже если они имеют понятные имена). Поэтому мне приходится выполнять избыточную работу, описывая поля и снова описывая геттеры / сеттеры.

пример:

/**
 * name of the dynamic strategy
 */
private String dynName;

/**
 * get the name of the dynamic strategy
 * @return
 */
public String getDynName() {
    return dynName;
}

поиск в интернете показал что я не единственный, у кого есть проблема, но я не мог найти никаких решений. Я проверил http://jautodoc.sourceforge.net/ но, похоже, он не способен на это.

9 ответов


JAutodoc с версии 1.6 (через 1 год после вопроса) имеет новую опцию "[G,S]etter из комментария поля", которая делает именно то, что вы хотите.

Это довольно удобная функция. Комментарии к полю обычно не включаются в окончательный javadoc HTML, потому что они могут/должны быть частными членами (создание Javadoc для каждого частного члена тоже не хорошо), поэтому комментарии будут полностью потеряны без него!

интересно, мог ли этот поток Q/A мотивировать автор для реализации этой приятной функции.


Я, наконец, нашел решение (или по крайней мере обходной путь) сам. Я читал о ложка на SO. Это программный процессор Java, который позволяет читать и изменять исходные файлы java. Его даже можно использовать как плагин Eclipse или скрипт Ant/Maven.

все, что вам нужно сделать, это расширить AbstractProcessor, который будет обрабатывать метод. Если имя метода начинается с get / set он ищет соответствующее поле, извлекает его комментарий и заменяет или расширяет аксессоры комментируют с ним.

У меня есть небольшой скрипт ant, который берет все мои источники и обрабатывает их.

что-то интегрированное в шаблоны кода затмений было бы, конечно, удобнее, но пока этот способ в порядке!


Если вы используете инструмент Eclipse для переопределения / реализации методов... в меню Источник есть возможность автоматически генерировать комментарии javadoc. есть шаблоны комментариев, которые можно изменить в настройках->java->стиль кода -> шаблоны кода -> комментарии.


Я согласен, что дублирование документации-это проблема. Как насчет документирования частной переменной, а затем предоставления ссылки на эту документацию в методах доступа?

(Очевидно, следующее решение для очень простые методы-аксессоры. Вы действительно не хотите предоставлять документацию о частных переменных в своем API, особенно если ваш метод доступа действительно делает что-то примечательное.)

public class MyBean {

/**
 * The names description
 */
private String name;

/**
 * @return {@link #name}
 */
public String getName() {
    return name;
}

/**
 * @param name {@link #name}
 */
public void setName(String name) {
    this.name = name;
}
}

обратите внимание, что если вы используете Eclipse, возможно, Вам потребуется включить ссылка на частные переменные в вашем javadoc следующим образом:

  • щелкните правой кнопкой мыши проект в Проводнике пакетов и выберите свойства
  • свернуть Компилятор Java узел и выберите Javadoc
  • выберите включить конкретные параметры проекта и под только рассматривать членов как видимые, как: выберите частная

    Я подозреваю, что поиск производительность будет зависеть,но я еще не использовал тест на сколько.


  • Если бы у вас был язык макросов, вы могли бы написать такую функцию, как "открыть всплывающее окно, которое позволяет мне вводить текст, а затем генерирует геттер и сеттер, включая его javadoc, на основе шаблонов".

    Eclipse фактически не имеет реальной поддержки для такого макроязыка, но, возможно, вы все равно могли бы взглянуть на:есть ли макро-рекордер для Eclipse?

    Если вы не хотите переключаться между eclipse и другим инструментом, вы можете попробовать JEdit (jedit.org) это включает в себя мощный макроязык beanshell. Таким образом, вы можете открыть eclipse & jedit, перетащить файл, который вы хотите обработать, из eclipse в jedit, использовать jedit macro power, затем сохранить файл и, наконец, обновить файл в eclipse.

    Это немного раздражает, но для некоторых процессов это способ, который я успешно принял.


    на JavadocWriter плагин для IntelliJ IDEA говорит, что он делает "умную копию javadoc из поля в accessor". Caveat utilitor: я сам не пробовал плагин, и он не обновлялся в течение 3 лет.


    IMHO если комментарии могут быть автоматически сгенерированы, они не добавляют большого значения.
    Если вы вызвали свой метод getDynamicStrategyName (), вам не нужно будет комментировать его, поскольку имя содержит всю информацию, которую вы бы поместили в комментарий.


    я использую Eclipse Luna 4.4.

    • выбрать меню Window \ Preferences выберите Java \ Code Style \ Code Templates. Выберите Раздел Comments \ Getters | Setters, нажмите кнопку Edit....

    enter image description here

    • существует много переменных для вас, используйте кнопку Insert Variable...

      enter image description here

    • измените формат комментариев, затем нажмите кнопку Apply, тогда нажмите OK до конца.


    на самом деле JAutodoc может генерировать комментарии для геттера/сеттера на основе комментариев полей. Вы должны проверить опцию "Создать комментарий из имени элемента", см.http://jautodoc.sourceforge.net/ для документации.