IntelliJ getter / setter格式

时间:2009-11-23 18:59:10

标签: java intellij-idea getter-setter

如何让IntelliJ在一行上生成getter / setter:

public String getAbc() { return abc; }

而不是

public String getAbc() {
   return abc;
}

...

6 个答案:

答案 0 :(得分:32)

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

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

在打开的“选择字段”窗口中,顶部有“获取模板”选项。使用下拉列表旁边的“...”按钮编辑模板。

选择“IntelliJ默认”并单击“复制”按钮以创建一个名为“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模板下拉列表中选择它。

答案 1 :(得分:11)

getter和equals / hashcode都没有模板。这些在IDEA中是硬编码的。

Source

您可以在此IntelliJ Wishlist

中看到

答案 2 :(得分:10)

您没有提到您正在使用的IDEA版本,所以我假设最近的8或9。

检查“对齐和大括号”下的代码样式设置。您应该在那里找到“一行中的简单方法”选项。

答案 3 :(得分:10)

我不知道你为什么要这样做,大概是为了节省视觉空间。如果是这样,只需使用IntelliJ的功能来折叠琐碎的getter / setter,并忘记它是如何行的。 折叠功能可以在

中找到

设置 - > IDE设置 - >编辑 - >代码折叠 - >显示代码折叠轮廓 - >简单的属性访问器

答案 4 :(得分:9)

对于Idea 2016。

获取模板

将最后3行合并为一行:

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

设置模板

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

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

将最后两行合并为一行:

$field.name = $paramName; }

注意:正如@mindas评论的那样,你可能会想要一个没有版本化的视觉自动折叠。

答案 5 :(得分:0)

Alex G和laffuste提供了有助于我的答案,但是即使按照这些说明进行操作,IntelliJ仍可能会自动格式化代码。要阻止这种情况的发生,请转到设置->编辑器->代码样式-> Java(或其他语言)。单击标题为“包装和括号”的选项卡。在“重新格式化时保留”标题下,单击“一行中的简单方法”旁边的复选框。

为简便起见,您可以消除getter和setter方法之间的空白行。为此,请单击标题为“空白行”的选项卡。在标题为“最小空白行”的部分中,找到“替代方法”旁边的文本框。在文本框中输入0。