Java编码风格2019

时间:2019-05-27 05:26:29

标签: java if-statement formatting code-formatting

我很好奇知道Java的当前编码样式。我的团队强迫{}用作一个内衬if语句。尽管我们以前曾经为一个衬里使用大括号,但当前的Java源代码在if语句不再对一个衬里使用大括号的时候,我本人也倾向于使用大括号。

Python完全删除了括号。

但是我在2019年没有看到任何特定的样式指南。.oracle doc仍然引用1997年的编码样式。

什么是正确的编码,或者与开发人员的偏好有更多关系?

   foo();

   if (condition)
      doSomething();

   bar();

vs

   foo();

   if (condition) {
      doSomething();
   }

   bar();

编辑1:正如Kartik提到的,我们也可以像这样写一个衬纸:

   if (condition) doSomething();

对我来说,这是开发人员的偏爱,我对这两种方法都满意,但是在我目前的团队中,一些开发人员认为不使用花括号是一种BAD编码做法。我看到了Java源代码,并且在很多地方都省略了花括号。所以,我不相信这是真的。至于谷歌编码风格,它也存在了很多年,许多人继续使用它。但是对于新代码,是否有任何新准则?

编辑2:此问题被标记为基于意见并被搁置

我想澄清一下,我不是在寻求意见。我正在寻找Oracle(或Java开源社区)可能就今天(2019)的最佳实践提出的标准指南。 Java / google的大多数做法都可以追溯到1996年,非常古老,可能与今天无关。即使在一些新书中有一些参考,并且有些可以分享这些细节,也将非常有用

2 个答案:

答案 0 :(得分:1)

我认为Java常用的样式指南之一是Google的样式指南,请参见here

它说:

  

即使主体为空或仅包含单个语句,括号也与if,else,for,do和while语句一起使用。

但是真正的一般答案是:仅使用提示之类的输入。为您服务:与同龄人坐下,看看自己喜欢什么,然后写下来并继续学习。像:我们的团队决定使用Google样式,但要在此处或此处进行细微的更改。

然后确保您的工具支持您喜欢的样式。我们选择“谷歌风格”的原因之一是您获得了eclipse,IntelliJ甚至SlickEdit的格式模板。

我同意没有Java8(及更新版本)元素的“突出”样式指南,例如冗长的流语句。那就是“与您的团队一起决定想要什么”的地方了。例如,我们决定

stream()
  .filter(...)
  .whatver

每行都行(原因之一是IntelliJ随后会在编辑时为您提供每行的返回类型,这对使用流非常有用)。

答案 1 :(得分:-2)

随便写。我更喜欢括号。 他们帮助导航代码。