通过"空if语句",我的意思是这样的(注意分号):
if (condition);
Run Code Online (Sandbox Code Playgroud)
我很难想到这个应用程序.使用while循环,您可以执行以下操作:
while (callUntilReturnsFalse());
Run Code Online (Sandbox Code Playgroud)
但是if-statement没有这样的申请.更重要的是,Java编译器在面对这样的语句时不会发出错误或警告.这可能会导致大而沉默的问题,特别是在冗长而复杂的陈述中:
if ((functionA() && functionB(getFoo()) ||
checkForComplexCondition(arg1, arg2, getBar(getFoo())));
{
doStuff();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么Java中允许这样做?而且,更重要的是,我可以启用一个选项,以便在发生这种情况时发出警告吗?
我试图准确理解Java字符串是如何不可变的.我知道这可能是一个简单的概念,但在阅读了几个在线网页后,我仍然不太明白.
我不明白Java Strings是如何"不可变的".我目前有以下代码:
public static void main(String[] args) {
String name = "Jacob Perkins";
System.out.println( name );
name = name + "!";
System.out.println( name );
}
Run Code Online (Sandbox Code Playgroud)
我的输出如下:
Jacob Perkins
Jacob Perkins!
Run Code Online (Sandbox Code Playgroud)
如果字符串应该是不可变的,为什么会发生这种情况呢?为什么我能够为字符串重新赋值?