Может ли IntelliJ генерировать геттеры без префикса "get"?
IntelliJ имеет классную функцию для генерации Java-геттеров. Например, для поля private final String foo
он будет генерировать геттер getFoo()
.
Можно ли настроить IntelliJ для генерации геттеров в формате String foo()
? Я работаю в основном с неизменяемыми объектами и предпочитаю этот синтаксис.
Ответы
Ответ 1
Аккуратный вопрос! Просто, чтобы уточнить @Danny Dan ответ, так как IntelliJ 15 был выпущен...
Чтобы установить это:
- Alt + Insert
- Выберите Getter
- Откройте конфигурацию шаблона из "..." на RHS
- Создайте новый шаблон из LHS - см. пример ниже
- Хорошо и выберите новый шаблон
Пример шаблона: fluent-getter
public ##
#if($field.modifierStatic)
static ##
#end
$field.type ##
${field.name}() {
return $field.name;
}
Зачем вам это нужно?
Оформить заказ Внедрение управляемого доменом дизайна:
Простой, но эффективный подход к дизайну объектов сохраняет объект Value верным для Ubiquitous Language. Использование getValuePercentage()
является техническим выражением на компьютере, но valuePercentage()
- это свободное выражение для чтения человеком.
Ответ 2
Если я правильно понял, теперь вы не можете изменить геттеры/сеттеры в идее. Проблема на youtrack
P.S. Итак, теперь версия Fix - 14.1, из этой версии идеи вы можете создать и выбрать шаблон getter/setter непосредственно в меню Alt-Insert
.
Ответ 3
Вот несколько немного улучшенных шаблонов на основе @Ed. предыдущий ответ:
Свободный-газопоглотитель:
public ##
#if($field.modifierStatic)
static ##
#end
$field.type ##
${field.name}() {
return ##
#if (!$field.modifierStatic)
this.##
#else
$classname.##
#end
$field.name;
}
свободно-сеттер:
#set($paramName = $helper.getParamName($field, $project))
public ##
#if($field.modifierStatic)
static ##
#end
void ##
${field.name}($field.type $paramName) {
#if ($field.name == $paramName)
#if (!$field.modifierStatic)
this.##
#else
$classname.##
#end
#end
$field.name = $paramName;
}