Ho scritto codice seguente e fu sorpreso di vedere l'output:java: Arrays.asList Understanding (T ... array) Metodo per i tipi primitivi
Integer a = 211;
int b = 211;
int[] array = {210,211,212};
System.out.println(Arrays.asList(array).contains(a));
System.out.println(Arrays.asList(array).contains(b));
uscita:
false
false
ho trovato this domanda e alcune altre domande ad esso collegate e appreso che il metodo asList
non utilizza Autobox. Ho controllato il tipo restituito in Eclipse javadoc anteprima:
non riuscivo a capire questo tipo di ritorno. int[]
è un oggetto e non un primitivo quindi va bene. Sono sicuro che non sto ottenendo List<Integer>
(qualcosa che mi aspettavo), ma non sono sicuro di come usare la cosa che viene restituita. Le mie domande sono:
-
1. Come esattamente mi aspetto che i metodi di lista funzionino quando mi aspetto un elenco di numeri interi e ottenere un elenco di int []?
-
2. In caso di stringhe, il tipo restituito è Elenco di stringa e non elenco di stringa []. Che tipo di differenze di implementazione ci sono?
-
3. A che serve questo metodo per i primitivi se le cose sono così incerte?
Grazie per il nuovo esempio di java 8 – ares