小编nul*_*ptr的帖子

清空if语句

通过"空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中允许这样做?而且,更重要的是,我可以启用一个选项,以便在发生这种情况时发出警告吗?

(之前就C#提出了这个问题,它确实发出警告,但我希望找到一种方法来引发Java警告.)

java language-design

23
推荐指数
3
解决办法
6万
查看次数

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)

如果字符串应该是不可变的,为什么会发生这种情况呢?为什么我能够为字符串重新赋值?

java string immutability

12
推荐指数
2
解决办法
655
查看次数

标签 统计

java ×2

immutability ×1

language-design ×1

string ×1