Avatar ·

Pourquoi array[idx++] += "a" incrémente idx une fois en Java 8 et deux fois en Java 9+ ?

Bonjour à tous ! J'ai rencontré un comportement étrange de Java lors de l'utilisation de l'opérateur d'affectation composée avec un incrément postfixé dans un tableau. J'ai un code simple : ```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]); } } ``` En Java 8, ce code affiche : ``` idx = 1 array[0] = xa array[1] = y ``` C'est-à-dire que idx est incrémenté une fois, et la chaîne "a" est ajoutée à array[0]. Mais en Java 9 et 10, j'obtiens : ``` idx = 2 array[0] = x array[1] = ya ``` C'est-à-dire que idx est incrémenté deux fois, et "a" est ajouté