2013-08-08 7 views

risposta

20

In modo da ottenere un String[]. Quello senza argomenti ti restituisce un Object[].

Vedi avete 2 versioni di questo metodo:

Passando String[] array, si sta utilizzando la versione generica.


Un modo migliore per passare la matrice String[] sarebbe inizializzarlo con la dimensione della Set, e non con dimensione 0, in modo che non v'è necessità di creare un nuovo array nel metodo:

Set<String> set = saved.getAll().keySet(); 
String[] mystring = set.toArray(new String[set.size()]); 
+3

personalmente ho sempre trovato trovato questo tipo esigenza di strano, avrebbe più senso per me per passare il ' Class.class' – StormeHawke

+0

@StormeHawke Questo implicherebbe la riflessione, che comporta un sovraccarico maggiore rispetto alla creazione di un array. – hexafraction

+0

Suppongo che abbia senso. Tuttavia, non è molto intuitivo in questo modo. Mi sembra che avrebbero potuto nascondere questa complessità in qualche modo – StormeHawke

3

È fornire un tipo per il ritorno ed evitare qualsiasi ambiguità in fase di compilazione.

la signiture per quella chiamata di metodo è: <T> T[] toArray(T[] a)

wheras il parametro vuoto uno è Object[] toArray()

+0

grazie per la risposta, amico. – user2580401

Problemi correlati