我只是想知道是否有人知道标准 Java 编码约定中这个特定项目背后的基本原理。 Java 编码约定 规定在强制转换后放置一个空格,如下所示:
Object myObj = (Object) someThing;
^
它与 C 中的强制转换语法相同,后面没有空格:
Object myObj = (Object)someThing;
^
我认为这是因为强制转换是一元运算符。在那里放一个空格就像这样做:
int x = ++ y;
while (0 < ++ x) { ... }
...这不是您通常看到的东西:
int x = ++y;
while (0 < ++x) { ... }
这似乎是 Java 独有的,所以如果有人有任何见解,我很想听听。
在Java语言规范“表达式”中,强制转换表达式不属于“15.15一元运算符”,但有一个自己的副标题“15.16强制转换表达式”。它主要不被称为强制转换运算符,而是强制转换表达式,并且规范中表示“括号及其包含的类型有时被称为强制转换运算符。”
(foo) method(bar)
而不是
(foo)method(bar)
考虑到双方的语法相似性。
(int)-(a * b)
这实际上在 C 中更相关,由于 typedefs,你可能无法立即判断左侧是否是强制转换。
Java 程序中有一些普遍存在的编码约定,特别是关于类和接口 (
CamelCaseNouns
)、方法 (
useCamelCaseVerbs
)、变量 (
camelCaseNouns
) 和常量 (
CAPITALS
) 的命名)。但除此之外,大多数项目都定义了自己的约定,包括在哪里放置括号和空格、使用多少缩进、在方法之间放置多少空行等。在项目内保持一致,但在其他方面使用您(和从事该项目的其他人)感觉最舒服。如果其他人不喜欢您的约定,他们可以使用众多格式化工具中的任何一个来自动将代码转换为他们自己的口味。