我很好奇知道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年,非常古老,可能与今天无关。即使在一些新书中有一些参考,并且有些可以分享这些细节,也将非常有用
答案 0 :(得分:1)
我认为Java常用的样式指南之一是Google的样式指南,请参见here。
它说:
即使主体为空或仅包含单个语句,括号也与if,else,for,do和while语句一起使用。
但是真正的一般答案是:仅使用提示之类的输入。为您服务:与同龄人坐下,看看自己喜欢什么,然后写下来并继续学习。像:我们的团队决定使用Google样式,但要在此处或此处进行细微的更改。
然后确保您的工具支持您喜欢的样式。我们选择“谷歌风格”的原因之一是您获得了eclipse,IntelliJ甚至SlickEdit的格式模板。
我同意没有Java8(及更新版本)元素的“突出”样式指南,例如冗长的流语句。那就是“与您的团队一起决定想要什么”的地方了。例如,我们决定
stream()
.filter(...)
.whatver
每行都行(原因之一是IntelliJ随后会在编辑时为您提供每行的返回类型,这对使用流非常有用)。
答案 1 :(得分:-2)
随便写。我更喜欢括号。 他们帮助导航代码。