Java 'if'语句结尾的分号

今天,在搜索错误半小时之后,我发现可以在if语句后加上分号而不是代码,如下所示:

if(a == b);

// Do stuff

从根本上讲,这意味着无论是否a相等b,都将完成工作,并且该if语句毫无意义。Java为什么不给我一个错误?有什么情况会有用吗?

回答:

Java语言规范说:

空话

空语句不执行任何操作。

EmptyStatement:

;

空语句的执行总是正常完成

从本质上讲,这意味着你要在a == b时执行空语句

if(a == b);

此问题有两种主要解决方案:

你可以通过使用代码格式化和周围里面的东西避免空语句的问题if有{和}。这样,你的空语句将更具可读性。

if(a == b){

;

}

你还可以检查用于静态代码分析的工具,例如:

  • Findbugs
  • Checkstyle
  • Pmd

他们可以立即突出显示诸如此类的问题。

我建议结合两种解决方案。

以上是 Java 'if'语句结尾的分号 的全部内容, 来源链接: utcz.com/qa/433798.html

回到顶部