Avatar ·

Warum erhöht array[idx++] += "a" den idx in Java 8 einmal und in Java 9+ zweimal?

Hallo zusammen! Ich bin auf ein seltsames Verhalten von Java gestoßen, wenn ich den zusammengesetzten Zuweisungsoperator mit Postfix-Inkrement in einem Array verwende. Ich habe diesen einfachen Code: ```java public class Test { public static void main(String[] args) { String[] array = {"x", "y", "z"}; int idx = 0; array[idx++] += "a"; System.out.println("idx = " + idx); System.out.println("array[0] = " + array[0]); System.out.println("array[1] = " + array[1]); } } ``` In Java 8 gibt dieser Code aus: ``` idx = 1 array[0] = xa array[1] = y ``` Das heißt, idx wird einmal erhöht, und der String "a" wird an array[0] angehängt. Aber in Java 9 und 10 erhalte ich: ``` idx = 2 array[0] = x array[1] = ya ``` Das heißt, idx wird zweimal erhöht, und "a" wird an array[1] angehängt.