今天,经过半小时的搜索bug,我发现可以在if语句后面加一个分号而不是代码,如下所示:
if(a == b);
// Do stuff
Run Code Online (Sandbox Code Playgroud)
这基本上意味着无论a是否等于b都会完成,if语句没有任何意义.为什么Java没有给我一个错误?有什么情况可以使用吗?
Java中是否存在匿名代码块的实际用途?
public static void main(String[] args) {
// in
{
// out
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,这不是关于命名块,即
name: {
if ( /* something */ )
break name;
}
Run Code Online (Sandbox Code Playgroud)
.
我在处理应用程序时犯了编码错误,这是对null引用的测试.我花了几个小时来发现问题是什么,但我不明白的是为什么代码表现如此.
String name = null;
String value = null;
if(name != null && value != null);
{
System.out.println("Values not null");
}
Run Code Online (Sandbox Code Playgroud)
if语句结束了;,这是我的错误,Values not null即使很明显两个值都为空,也会打印出来.谁能解释为什么?