Heim >Java >javaLernprogramm >Wie hat sich das Verhalten von „Arrays.asList()' in Java seit Version 1.4.2 geändert?
Arrays in Listen in Java: sich entwickelndes Verhalten
In Java ist das Konvertieren von Arrays in Listen eine häufige Aufgabe. Das Verhalten der Arrays.asList()-Methode hat jedoch seit Java SE 1.4.2 erhebliche Änderungen erfahren.
Verhalten vor Java 1.5
Vor Java 1.5, Arrays.asList() hat eine Liste zurückgegeben, die die tatsächlichen Elemente des Arrays enthält. Zum Beispiel:
int[] numbers = { 1, 2, 3 }; List<Integer> list1 = Arrays.asList(numbers);
In diesem Fall würde list1 die Elemente 1, 2 und 3 enthalten.
Verhalten in Java 1.5 und höher
Ab Java 1.5 hat sich das Verhalten von Arrays.asList() geändert. Es gibt jetzt eine Liste fester Größe zurück, die einen Verweis auf das ursprüngliche Array enthält. Als Ergebnis:
int[] numbers = { 1, 2, 3 }; List<Integer> list2 = Arrays.asList(numbers);
In diesem Fall würde list2 ein einzelnes Element enthalten: die Array-Nummern selbst.
Grund für die Änderung
Die Verhaltensänderung wurde vorgenommen, um die Typsicherheit durchzusetzen. Da Listen keine primitiven Typen wie int enthalten können, muss die zurückgegebene Liste vom Typ List
Auswirkungen auf vorhandenen Code
Code, der vor Java 1.5 geschrieben wurde Das alte Verhalten von Arrays.asList() muss möglicherweise geändert werden. Beispielsweise würde die folgende Behauptung in Java 1.5 und höher fehlschlagen:
Assert.assertTrue(Arrays.asList(numbers).indexOf(4) == -1);
Arrays in Listen primitiver Typen konvertieren
So konvertieren Sie ein Array primitiver Typen in Um eine Liste der entsprechenden Wrapper-Klasse zu erstellen, können Sie die folgende Technik verwenden:
Integer[] numbers = new Integer[] { 1, 2, 3 }; List<Integer> list = Arrays.asList(numbers);
Dadurch wird eine Liste erstellt Ganzzahlige Objekte, die die Werte des Arrays enthalten.
Das obige ist der detaillierte Inhalt vonWie hat sich das Verhalten von „Arrays.asList()' in Java seit Version 1.4.2 geändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!