众所周知,你可以写
int a;
int b;
b = a = 3;
但是我想写
foo f;
bar b;
f = b = null;
这在语法上无效。大概是因为 null
在分配给 b
时有一个与之关联的类型,并且该类型不能分配给 f
,即使引用的值为空
。这是正确的吗?除了明显的 f = null; 之外,还有其他选择吗? b = null;
?
最佳答案
你的两个片段并不完全相似。更好的类比是:
int a;
double b;
a = b = 3; // error
会产生相同的错误。导致问题的原因是 f
和 b
的类型不同,而不是我们分配了 null
。具体来说,(b = null)
的类型是 bar
,它不能与 foo
进行赋值比较。
执行单独的任务可能会更好。
关于java - 为什么不能使用复合赋值将多个变量设置为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938794/