我已经编译并执行了Java所示的两个程序片段,并且它们均有效。谁能解释为什么会这样?
之所以允许,是因为Java语法说允许。参见JLS
7.6。
Java类定义末尾的分号代表什么?
没有。它是可选的“语法噪声”。
JLS对此进行了如下解释:
多余的“;” 出现在编译单元中类型声明级别的标记对编译单元的含义没有影响。Java编程语言中仅允许使用散列分号作为对习惯于放置“;”的C
++程序员的让步。在类声明之后。它们不应在新的Java代码中使用。
(请注意,这不是“空语句”。在允许使用语句的句法上下文中会出现一个空语句(JLS
14.6)。空语句的存在可以更改代码的含义;例如
if(a == b) ; c();vs
if (a == b) c();)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)