Аннотация класса
Открытые ИДЕИSettings, нажмитеEditor-->File and Code Templates, нажмите справаFileпод вкладкойClassи добавьте содержимое в красное поле на рисунке:
/** * @author jitwxs * @date ${YEAR}年${MONTH}月${DAY}日 ${TIME} */
Уведомление
В предоставленном мной шаблоне примера указаны автор и время, а все параметры шаблона, поддерживаемые IDEA, приведены ниже.Descriptionперечислены в.
После сохранения аннотации класса автоматически добавляются при создании нового класса. Если вы хотите также повлиять на интерфейс, настройтеInterfaceпункт.
2. Примечания к методу
В отличие от текущих руководств по аннотациям методов, которые копируют и вставляют друг друга в Интернете, в этой статье будут реализованы следующие функции:
-
Автоматически генерируется в соответствии с параметрами формы
@paramаннотация -
Интеллектуально генерируется на основе того, имеет ли метод возвращаемое значение
@Returnаннотация
По сравнению с шаблонами классов добавлять шаблоны аннотаций к методам сложнее.Settingsсредний щелчокEditor-->Live Templates.
Нажмите на крайний правый+, сначала выберите2. Template Group...Чтобы создать группу шаблонов:
Заполните имя группы во всплывающем диалоговом окне, которое я называю здесь userDefine:
Затем выберите только что созданную группу шаблонов.userDefine, затем нажмите+,выберите1. Live Template:
На этом этапе будет создан пустой шаблон, и мы изменим егоAbbreviation,DescriptionиTemplate text. должны знать о том,Abbreviationдолжно быть*, и, наконец, проверьтеExpand withЗначение клавиши Enter.
На фото вышеTemplate textСодержание выглядит следующим образом, пожалуйста, скопируйте его напрямую,Обратите внимание, что первая строка не /,и \*я остановился.
* * * @author jitwxs * @date $date$ $time$$param$ $return$ */
Обратите внимание на нижний правыйNo applicable contexts yetЭто означает, что в данный момент в этом шаблоне не указан язык приложения:
нажмитеDefine, выберите его во всплывающем окнеJava, который применяет шаблон ко всем файлам типа Java.
установить применимые контексты
Помните, мы настроилиTemplate textсодержит что-то вроде$date$Для таких параметров IDEA пока не знает, что это за параметры.Далее мы сопоставим эти параметры, чтобы IDEA могла понять значение этих параметров. нажмитеEdit variablesкнопка:
Для каждого параметра задайте соответствующийExpression:
Установить выражение
должны знать о том,dateиtimeизExpressionИспользуя встроенные функции IDEA, вы можете напрямую использовать раскрывающийся список для выбора иparamРеализация этого параметра IDEA по умолчанию очень плохая, поэтому нам нужно реализовать его вручную, код выглядит следующим образом:
groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] != '')result+='* @param ' + params[i] + ((i < params.size() - 1) ? '\\r\\n ' : '')}; return result == '' ? null : '\\r\\n ' + result", methodParameters())
Кроме тогоreturnЭтот параметр я тоже реализовал сам, код такой:
groovyScript("return \"${_1}\" == 'void' ? null : '\\r\\n * @return ' + \"${_1}\"", methodReturnType())
Примечание. Вы также заметили, что я не поставил галочку.
Skip if definedсвойство, это означает, что если этот элемент определен при формировании комментариев, курсор мыши будет пропускать его напрямую. Мне не нужна эта функция, поэтому проверьте это свойство.
Нажмите OK, чтобы сохранить настройки, и все готово!
3. Результаты проверки
3.1 Аннотации классов
Аннотации классов доступны только вОн автоматически генерируется при создании нового класса., эффект следующий:
аннотация класса
3.2 Аннотации методов
Будут продемонстрированы следующие сценарии:
-
нет параметра
-
один параметр
-
несколько параметров
-
нет возвращаемого значения
-
имеет возвращаемое значение
аннотация метода
4. Вопросы и ответы
(1) почему шаблон Abbreviationдолжен позвонить\*?Expand withХотите убедиться, что это клавиша Enter?
Ответ: Поскольку логика генерации шаблонов IDEA模板名 + 生成键, когда сгенерированный ключ Enter , мы вводим* + Enterдля запуска шаблона.
Это также объясняет, почему первая строка шаблона комментария является*, потому что когда мы впервые вводим/*, затем введите* + Enter, запустить шаблон, первая строка точно прописана/**, который соответствует спецификации Javadoc.
(2) Почему в шаблоне комментария пустая строка \*?
A: Поскольку я привык писать описания методов в этой строке, я зарезервировал для записи пустую строку, вы также можете ее удалить.
(3) В шаблоне аннотации $time$$param$Почему эти две, казалось бы, несвязанные вещи склеиваются?
Ответ: Во-первых, большинство функций генерации параметров, представленных в Интернете, по-прежнему будут генерировать пустую строку без параметров.@param, поэтому я модифицировал код функции param, чтобы она не генерировалась в случае отсутствия параметров@param, но для этого требуется$param$Будьте в той же строке, что и кто-то другой, иначе вы не сможете справиться с возвратом на место.
(4) Почему возвращаемый параметр не используется methodReturnType(), а реализовать самому?
отвечать:methodReturnType()Не имеет особого смысла возвращать void, если нет возвращаемого значения, поэтому я сгенерировал возвращаемое значение methodReturnType() только в том случае, если есть возвращаемое значение.
(5) почему $return$Не в одну строку?
Ответ: Потому что когдаmethodReturnType()При возврате null возврат назад не может быть обработан по той же причине, что и пункт 3.