2011-09-06 12 views
18

Il seguente codice fornisce un errore di compilazione:Esiste un modo sicuro per passare una lista vuota come argomento in java?

public void method(List<String> aList) {} 

public void passEmptyList() { 
    method(Collections.emptyList()); 
} 

C'è un modo per passare una lista vuota per method senza

  • Utilizzando una variabile intermedia
  • Casting
  • Creazione di un altro oggetto elenco come new ArrayList<String>()

?

risposta

22

Sostituire

method(Collections.emptyList()); 

con

method(Collections.<String>emptyList()); 

Il <String> dopo la . è un esplicito vincolante per il parametro emptyList s' tipo, in modo che restituirà un List<String> invece di un List<Object>.

5

È possibile specificare il tipo di parametro in questo modo:

public void passEmptyList() { 
    method(Collections.<String>emptyList()); 
} 
Problemi correlati