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é