2009-11-23 1 views

ответ

11

Нет шаблонов ни для геттеров, ни для equals/hashcode. Они жестко закодированы в IDEA.

Source

Вы можете видеть, что в этом IntelliJ Wishlist

+3

Теперь (я использую Ultimate 2016) - см. Ответы ниже – werner

10

Вы не упомянули, какую версию IDEA вы используете, поэтому я предполагаю, что в последнее время 8 или 9.

Проверьте настройки кода стиля, в разделе «Выравнивание и фигурные скобки». Вы должны найти опцию «Простые методы в одной строке».

+0

Мы - 8.1.3. Это, похоже, не работает, хотя .. –

+0

Вы попытались снять флажок связанного с этим раздела «Разрывы строк» ​​в группе «Keep When Reformatting»? – seh

+3

Однострочный параметр сообщает IntelliJ о том, чтобы оставить его таким образом на переформатировании, но не создавать его таким образом. –

9

Я не знаю, почему вы хотите сделать это, предположительно, для экономии визуального пространства. Если это так, просто используйте функцию IntelliJ, чтобы сбрасывать тривиальные getters/seters и забывать о том, как это делается. Складной функцию можно найти в

Настройки -> IDE Настройки -> Редактор -> Code Folding -> Показать код складной контур -> Простое свойство

методы доступа
26

Я использую IntelliJ IDEA 14.1.0, и вы можете настройте это поведение.

Просто используйте опцию "Создать ...", или использовать Alt +Вставить ярлык, и выберите "Getter и Setter".

В окне «Выбрать поля», которое открывается, у вас есть опция «Getter Template» в верхней части. Используйте кнопку «...» рядом с выпадающим меню, чтобы отредактировать шаблон.

Выберите «IntelliJ Default» и нажмите кнопку «Копировать», чтобы создать новый «AlwayStartWithGet», который вы можете редактировать.

Просто удалите следующий раздел:

#if ($field.boolean) 
    #if ($StringUtil.startsWithIgnoreCase($name, 'is')) 
    #set($name = $StringUtil.decapitalize($name)) 
    #else 
    is## 
#end 
#else 
    get## 
#end 

И заменить его простой

get## 

Вы должны быть оставлены:

publiC## 
#if($field.modifierStatic) 
    statiC## 
#end 
$field.type ## 
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))) 
get## 
${name}() { 
    return $field.name; 
} 

Теперь вы можете использовать пользовательский шаблон при генерации кода, выбрав его в раскрывающемся списке шаблона getter.

+0

Это выглядит многообещающим, но я не вижу кнопку шаблона Getter в верхней части этого диалога. Использование 14.0.2. – Gervase

+2

Работал для меня, но если быть точным, последняя часть шаблона должна выглядеть так: '$ {name}() {return $ field.name; } ' в одной строке –

+4

Обязательно проверьте также настройки/код Стиль/Java/простые блоки в одной строке и простые методы в одной строке. В противном случае автоматическое форматирование вернет строки обратно, и после изменения шаблона вы не увидите никакого эффекта ... – werner

3

Для Idea 2016.

шаблон Getter

Merge последние 3 строки в одной строке:

${name}() { return $field.name; } 

сеттер шаблона

Добавить двойной хэш (без пробела) в конце наибольшая длина:

[...] ($field.type, $paramName) {## 

Merge последних 2 строк в одну строку:

$field.name = $paramName; } 

Примечания: в прокомментирована @mindas, вы, вероятно, захотите вместо визуального автоматического складывания, который не получает версирован.

Смежные вопросы