IntelliJ getter/setter format (单行与多行)

2022-09-01 07:16:07

如何让 IntelliJ 在一行上生成 getter/setters 访问器方法,如下所示:

public String getAbc() { return abc; }

...而不是像这样的多行:

public String getAbc() {
   return abc;
}

答案 1

我正在使用IntelliJ IDEA 14.1.0,您可以自定义此行为。

只需使用“生成...”选项,或使用 + 快捷方式,然后选择“Getter and Setter”。AltInsert

在打开的“选择字段”窗口中,顶部有“Getter模板”选项。使用“...”按钮,以编辑模板。

选择“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 模板下拉列表中选择它。


答案 2

对于创意2016。

格特模板

将最后 3 行合并为一行:

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

二传手模板

在最长行的末尾添加双哈希(不带空格):

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

将最后 2 行合并为一行:

$field.name = $paramName; }

注意:正如@mindas所评论的那样,您可能希望使用不会进行版本控制的可视自动折叠。


推荐