Por que array[idx++] += "a" incrementa idx uma vez no Java 8 e duas vezes no Java 9+?
Olá a todos! Encontrei um comportamento estranho do Java ao usar o operador de atribuição composta com incremento pós-fixado em um array.
Eu tenho um código simples:
```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]);
}
}
```
No Java 8, este código imprime:
```
idx = 1
array[0] = xa
array[1] = y
```
Ou seja, idx é incrementado uma vez, e a string "a" é adicionada a array[0].
Mas no Java 9 e 10, eu obtenho:
```
idx = 2
array[0] = x
array[1] = ya
```
Ou seja, idx é incrementado duas vezes, e "a" é adicionado a array[1].