有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

EclipseJava格式化程序。在花括号前换行,但在花括号后不换行

在这里,我们有一个非常奇怪的编码约定,我没有在Eclipse中成功地设置Java格式化程序来做我想做的事情。公约规定:

  • 在大括号“{”之前,应该总是有一个新行

[更新] 我们的惯例中没有规定,{之后是否应该是换行符。这些例子实际上使用了换行符(到目前为止,我看到的几乎所有惯例都说或暗示,{和}之后应该始终是换行符)。因此,示例1和2都是“语法正确的”。 [/更新]

由于这破坏了代码,我们的团队决定这样编写代码(不,这不是我的选择!)

public void methode(final boolean b)
{ if (b)
  { do.something();
  }
  else
  { do.somethingElse();
  }
}

但在格式化程序中,我只能得到以下结果:

public void methode(final boolean b)
{
  if (b)
  { 
    do.something();
  }
  else
  { 
    do.somethingElse();
  }
}

或者这个:

public void methode(final boolean b) { 
  if (b) { 
    do.something();
  }
  else {
    do.somethingElse();
  }
}

有没有办法告诉格式化程序在“{”之前换行,但在“{”之后不换行?我知道第一种样式很糟糕,我很乐意使用最后两种样式中的一种,但这是公司的决定


共 (2) 个答案

  1. # 1 楼答案

    您是否可以关闭代码格式化程序的相关部分,改用模板。例如在打字时

    private_
    

    点击ctrl+space将调用private_方法模板。然后,您可以将私有模板修改为如下内容-

    private ${return_type} ${name}(${}) 
    { ${cursor}
    }
    

    您必须执行与其他block语句类似的操作,并且必须修改您的编码风格,以便更频繁地开始使用模板,但我认为它可以工作

  2. # 2 楼答案

    所以,这里有一个关于这个主题的信息。我做了更多的研究。此处令人厌恶的大括号样式(示例1)有一个名称:The Horstman Brace Style或此处Horstman。有一小群人在为它辩护,因为它结合了K&;R和奥尔曼(示例2)样式。由于支架排列整齐,因此不会“浪费”空间

    但事实并非如此。这种风格对风投公司来说是痛苦的。如果需要在大括号和第一条语句之间添加一行,则首先需要打断该行,并将新行放在那里。在差异或合并中,您将看到的不是“添加了一行”,而是“两行交换了一行”。但是你改变了原来的说法

    所以另一个论点是,不要使用这种风格