Страницы

Поиск по вопросам

понедельник, 3 февраля 2020 г.

Настройка автозасоздания setter'ов и getter'ов в Inteliji IDEA и Android Studio

#android_studio #intellij_idea


Как настроить автоматическое создание getter'ов и setter'ов в Inteliji IDEA (и AS),
чтобы, при создании методов, пропускалась буква m, если она стоит первой?



Например, если у меня есть переменная mWord, IDEA создает метод getmWord, а нужно
getWord.
    


Ответы

Ответ 1



В настройках - Editor->Code Style->Java, вкладка Code Generation В строку Field: в колонке Name Prefix пишите m, в строку Static field: в колонку Name Prefix пишите s. Теперь при автогенерации геттеров и сеттеров буквы m и s из имен методов будут опускаться, а при именовании полей классов предлагаться имена с m и s в начале, для простых и статических полей класса соответственно.

Ответ 2



Code → Generate → Getter and Setter Жмём кнопку ... после комбо-бокса Getter Template. Копируем шаблон IntelliJ Default и слегка его модифицируем: public ## #if($field.modifierStatic) static ## #end $field.type ## #set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))) #if ($StringUtil.length($name) > 1 && $StringUtil.startsWith($name, 'm')) #set($name = $name.substring(1)) #end #if ($field.boolean && $field.primitive) #if ($StringUtil.startsWithIgnoreCase($name, 'is')) #set($name = $StringUtil.decapitalize($name)) #else is## #end #else get## #end ${name}() { return $field.name; } Теперь жмём кнопку ... после комбо-бокса Setter Template. Копируем шаблон IntelliJ Default и модифицируем: #set($paramName = $helper.getParamName($field, $project)) public ## #if($field.modifierStatic) static ## #end #set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))) #if ($StringUtil.length($name) > 1 && $StringUtil.startsWith($name, 'm')) #set($name = $name.substring(1)) #end void set${name}($field.type $paramName) { #if ($field.name == $paramName) #if (!$field.modifierStatic) this.## #else $classname.## #end #end $field.name = $paramName; }

Комментариев нет:

Отправить комментарий