gpt4 book ai didi

java - 无名变量声明 - 为什么它有效?

转载 作者:太空狗 更新时间:2023-10-29 22:36:54 25 4
gpt4 key购买 nike

我很惊讶看到这种行为。

是bug还是什么?

for(Object obj = new Object(), Integer = new Integer(300);
obj.toString().length()>3;
System.out.println("on object's loop")) {

} //causes an infinite loop (not foreach loop, of course)

以上代码编译并运行良好,无需任何引用 new Integer(300)。为什么会这样?

我只想知道为什么 Integer = new Integer(300); 没有任何引用就可以。

最佳答案

Object obj = new Object(), Integer = new Integer(300);

这会创建两个变量:

  1. obj 类型为 Object,它被分配给 new Object()
  2. Integer(是的,这是变量的名称)也是 Object,它被分配给 new Integer(300)

顺便说一下,这与 for 循环无关;该行可以自行编译。现在,如果那个 , 真的是一个 ;,那就是另一回事了。

一般来说,我们可以构造以下形式的有效语句:

Type t1 = ..., t2 = ..., t3 = ..., ...;

相当于

Type t1 = ...;
Type t2 = ...;
Type t3 = ...;
...

关于java - 无名变量声明 - 为什么它有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17602765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com