【发布时间】:2019-10-12 16:16:19
【问题描述】:
我很想知道java当前的编码风格。我的团队强制将 {} 用于一个班轮 if 语句。虽然我们曾经为一个衬里使用大括号,但当前的 java 源代码不再为一个衬里使用大括号 if 语句,我自己也倾向于这样做。
Python 完全放弃了大括号。
但是我在 2019 年没有看到任何特定的风格指南。oracle 文档仍然指的是 1997 年的编码风格。
什么是正确的编码,还是与开发人员的偏好有关?
foo();
if (condition)
doSomething();
bar();
对
foo();
if (condition) {
doSomething();
}
bar();
编辑 1:正如 Kartik 提到的,我们也可以这样写一个衬里:
if (condition) doSomething();
对我来说,这是开发人员的偏好,我对这两种方法都满意,但在我目前的团队中,一些开发人员认为不使用大括号是一种糟糕的编码实践。看了java源码,发现很多地方大括号都省略了。所以,我不相信这是真的。至于谷歌编码风格,它也存在多年,很多人继续使用。但是对于新代码有没有新的指导方针?
编辑 2:此问题被标记为基于意见并被搁置
我想澄清一下,我不是在寻找意见。我更多的是寻找 Oracle(或 Java 开源社区)截至今天(2019 年)可能就最佳实践提出的标准指南。大多数 java/google 的做法都可以追溯到 1996 年,现在可能已经不适用了。即使在一些新书中有一些参考,有些人可以分享这些细节,也会很有帮助
【问题讨论】:
-
如果您不使用大括号,请确保将整个内容写在一行中,例如
if (condition) doSomething(); -
我对第一种风格的个人问题是,前面
if的闭包不是那么明确。所以,我更喜欢总是使用花括号。如果官方观点会随着 Java 的最新版本而改变(假设有),我会感到惊讶。 -
总是添加大括号背后的想法是我可以添加一些代码而无需查看是否需要添加大括号。
-
我从未见过不要求每个循环体和 if/else 体都使用大括号的编码标准。其背后的原因是维护开发人员会添加行而忘记添加大括号。这是一个真正的问题,导致了许多真正的错误。此外,添加大括号没有任何成本——它丝毫不会损害可读性。
-
@VGR 那为什么java源代码不一样呢?
标签: java if-statement formatting code-formatting