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 in Java gestoßen, wenn man den zusammengesetzten Zuweisungsoperator mit Postfix-Inkrement in einem Array verwendet.\n\nIch habe diesen einfachen Code:\n\n```java\npublic class Test {\n public static void main(String[] args) {\n String[] array = {"x", "y", "z"};\n int idx = 0;\n array[idx++] += "a";\n System.out.println("idx = " + idx);\n System.out.println("array[0] = " + array[0]);\n System.out.println("array[1] = " + array[1]);\n }\n}\n```\n\nIn Java 8 gibt dieser Code aus:\n```\nidx = 1\narray[0] = xa\narray[1] = y\n```\n\nDas heißt, idx wird einmal erhöht, und der String "a" wird an array[0] angehängt.\n\nAber in Java 9 und 10 erhalte ich:\n```\nidx = 2\narray[0] = x\narray[1] = ya\n```\n\nDas heißt, idx wird zweimal erhöht, und "a" wird an array[1] angehängt.