私はいくつかのコードのレビューを行っていて、Integer のラッパー クラスであるメンバー変数をポストインクリメントしている誰かのインスタンスに出くわしました。私は自分でそれを試してみましたが、それが機能することに本当に驚きました.
Integer x = 0;
System.out.print(x++ + ", ");
System.out.print(x);
これは 、私が期待したもの0, 1
ではありません。0, 0
言語仕様を調べましたが、これをカバーするものは見つかりません。これが機能する理由と、複数のプラットフォーム間で安全であるかどうかを誰かに説明できますか? 私はこれが分解されると思っていたでしょう
Integer x = 0;
int temp1 = x.intValue();
int temp2 = temp1 + 1;
System.out.println(temp1);
temp1 = temp2;
System.out.println(x.intValue());
x = temp1;
しかし、どうやら仕様には最終行の前に追加する何かがあるようです