我在使用jdk 13.0的Java中遇到以下奇怪行为:
String foo = "Something";
String bar = "Other";
if (foo.equals(bar));
{
System.out.println("Face palm");
}
不幸的是,上方比较成功和“脸掌”已打印出来。导致此现象的原因是if语句末尾的分号的存在。
正确的方法是:
String foo = "Something";
String bar = "Other";
if (foo.equals(bar))
{
System.out.println("Face palm");
}
任何人都可以解释一下Java为什么会这样吗?
这仅仅是编译器未捕获的语法错误吗?
这并不意味着比较成功-基本上,您只是用空主体创建了if
语句,然后打开了本地匿名代码块(从{
开始)
在这种情况下,Face palm
值将始终被打印出来-无论结果如何。
在这里阅读更多: