次の点を考慮して、Javaでの連鎖割り当てはどのように定義されていますか:
- 連鎖代入と連鎖宣言に違いはありますか?
- 参照を渡す代わりに、参照型がステートメントを繰り返す方法はありますか?
例えば
Integer a, b = new Integer(4);
JLS 15.26代入演算子では、それは言う
実行時の代入式の結果は、代入が行われた後の変数の値です。代入式の結果自体は変数ではありません。
だからa == b
本当のはずです。
達成する方法はありますか
Integer a = new Integer(4)
Integer b = new Integer(4)
とは異なるオブジェクトであるa != b
ため、1 行に
まとめます。a
b
追加情報
質問はすでに回答されていますが、十分に明確ではないと感じたので、ここで明確にするためのコードをいくつか示します。
Integer a = null, b = null, c = null;
System.out.println(a + " " + b + " " + c); // null null null
a = b = c = new Integer(5); // <-- chained assignment
System.out.println(a + " " + b + " " + c); // 5 5 5
System.out.println(a.equals(b)); // true
System.out.println(b.equals(c)); // true
System.out.println(a == b); // true
System.out.println(b == c); // true