Durante la programmazione per Android, ogni volta che utilizzo un AsyncTask il metodo doInBackground appare come questo.
protected String doInBackground(String... args)
Ma quando uso gli argomenti ovunque in quel blocco posso accedervi come un normale array di String, ad esempio nel mio programma
@Override
protected String doInBackground(String... args)
{
String details = "";
try
{
details = facade.getRecipeDetails(args[0]);
}
catch(Exception ex)
{
ex.printStackTrace();
}
return details;
}
Che funziona bene e non ho alcun problema a risolverlo. Ma mi chiedo perché usano (String. Args) invece di una normale serie di stringhe. È solo perché nel metodo di chiamata puoi semplicemente scrivere qualcosa come:
new AsyncHandler.execute("argument1","argument2","argument3",...)
invece di creare un nuovo array per passare gli argomenti? Anche se potremmo scrivere
new AsyncHandler().execute(new String[]{"Argument1","Argument2"});
che è un po 'più prolisso.
Sono (String ...) e String [] anche nel modo in cui funzionano, ma l'argomento che passa è più semplice usare il primo perché non è necessario creare un array? Per quanto ne so, il primo viene anche tradotto in una matrice di stringhe in background, quindi entrambi compilano lo stesso codice ed è solo "zucchero sintattico"?