java - 为什么不能使用复合赋值将多个变量设置为 null?

标签 java

众所周知,你可以写

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

会产生相同的错误。导致问题的原因是 fb 的类型不同,而不是我们分配了 null。具体来说,(b = null) 的类型是 bar,它不能与 foo 进行赋值比较。

执行单独的任务可能会更好。

关于java - 为什么不能使用复合赋值将多个变量设置为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938794/

相关文章:

java - Play Framework - 使用 Promise.failure(exception) 的方法的接口(interface)

java - 如何显示 Groovy AntBuilder 类路径中包含的所有资源?

java - 如何将 Vaadin 8 Grid 的高度设置为未定义?

java - 对话框标题栏中的自定义按钮

java - 下面的代码问题解决方案在本地 IDE 中对我有用,但在 Hackerrank IDE 中以某种方式失败,我的代码是否有任何问题

java - eclipse可以调试或运行一个项目中的两个程序

java - 如何使用主类中的方法打印的输出?

java - 使用 twilio : The API package 'urlfetch' or call 'Fetch()' was not found 发送短信

javax.naming.NoInitialContextException Apache Commons api

java - IntelliJ - java.lang.NoClassDefFoundError : net/jodah/failsafe/Policy