Avatar ·

Java 8 में array[idx++] += "a" एक बार idx बढ़ाता है और Java 9+ में दो बार क्यों?

सभी को नमस्ते! मुझे array में postfix increment के साथ compound assignment operator का उपयोग करते समय Java के अजीब व्यवहार का सामना करना पड़ा। मेरे पास सरल कोड है: ```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]); } } ``` Java 8 में यह कोड आउटपुट देता है: ``` idx = 1 array[0] = xa array[1] = y ``` यानी idx एक बार बढ़ता है, और स्ट्रिंग "a" array[0] में जुड़ जाती है। लेकिन Java 9 और 10 में मुझे मिलता है: ``` idx = 2 array[0] = x array[1] = ya ``` यानी idx दो बार बढ़ता है, और "a" array[1] में जुड़ जाती है।