0

次の点を考慮して、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 行に まとめます。ab

追加情報

質問はすでに回答されていますが、十分に明確ではないと感じたので、ここで明確にするためのコードをいくつか示します。

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
4

1 に答える 1