Java中是否支持串联赋值?能否在单条语句中为两个变量赋值?
Java中的串联赋值:完全可行且常用
当然可以!你给出的代码this.edge = this.side = null;在Java里是完全合法的,这是一种很常见的串联赋值写法。
背后的原理
Java的赋值运算符是有返回值的——赋值表达式本身会返回被赋予的值。所以这条语句的执行顺序是:
- 先执行
this.side = null,这个表达式的结果就是null - 再把这个返回的
null赋值给this.edge
最终两个变量都会被设置为null。
不同类型的示例
除了引用类型的串联赋值,基本类型也支持这种写法:
- 引用类型示例:
String firstName = lastName = "Smith"; // 等价于 lastName = "Smith"; firstName = lastName; - 基本类型示例:
int age = score = 90; // 等价于 score = 90; age = score;
注意事项
要确保变量的类型兼容:如果this.side和this.edge的类型不兼容(比如一个是String,一个是Integer),编译器会报错。另外,基本类型不能赋值null,所以像int a = b = null;这种写法是不合法的。
总的来说,这种串联赋值能让代码更简洁,只要类型匹配就可以放心使用~
内容的提问来源于stack exchange,提问作者Andreu Alcon
相关产品推荐
相关产品推荐

