2010-11-18 6 views

risposta

35

Java Varargs.

... Ti piace questa

public void func(String ... strings) { 
    for (String s : strings) 
     System.out.println(s); 
} 

Si noti che se si voleva richiedere che un numero minimo di argomenti deve essere passato a una funzione, pur consentendo per argomenti variabili, si dovrebbe fare qualcosa di simile . Ad esempio, se si ha una funzione che aveva bisogno di almeno una stringa, e quindi una variabile di lista di argomenti di lunghezza:

public void func2(String s1, String ... strings) { 

} 
+0

fantastico! grazie per la spiegazione dettagliata :) – ufk

+0

se non conosco il tipo di argomento? posso usare solo oggetto? – ufk

+1

Sì, è possibile ... – aioobe

6

Come altri hanno fatto notare è possibile utilizzare varargs:

void myMethod(Object... args) 

Questo è in realtà equivalente a:

void myMethod(Object[] args) 

infatti il ​​compilatore converte la prima forma alla seconda - non v'è alcuna differenza nel codice byte. Tutti gli argomenti devono essere dello stesso tipo, quindi se si desidera utilizzare argomenti con tipi diversi è necessario utilizzare un tipo di oggetto e eseguire il cast necessario.

Problemi correlati