Come potrebbe essere chiaro dal titolo quale approccio preferiremmo?Passare un parametro o restituirlo dalla funzione
L'intenzione è passare alcuni parametri di metodo e ottenere qualcosa come output. Possiamo passare un altro parametro e il metodo lo aggiornerà e il metodo non deve restituire nulla ora, il metodo aggiornerà solo la variabile di output e verrà riflesso al chiamante.
Sto solo cercando di inquadrare la domanda attraverso questo esempio.
List<String> result = new ArrayList<String>();
for (int i = 0; i < SOME_NUMBER_N; i++) {
fun(SOME_COLLECTION.get(i), result);
}
// in some other class
public void fun(String s, List<String> result) {
// populates result
}
contro
List<String> result = new ArrayList<String>();
for (int i = 0; i < SOME_NUMBER_N; i++) {
List<String> subResult = fun(SOME_COLLECTION.get(i));
// merges subResult into result
mergeLists(result, subResult);
}
// in some other class
public List<String> fun(String s) {
List<String> res = new ArrayList<String>();
// some processing to populate res
return res;
}
Capisco che si passa il riferimento e un altro non lo fa.
Quale preferiamo (in diverse situazioni) e perché?
Aggiornamento: considerarlo solo per oggetti mutabili.
Non sono sicuro di cosa stai chiedendo. Stai chiedendo in quali situazioni dovresti passare una variabile ad un metodo o acquisirlo nel metodo con un getArg() o qualsiasi altra cosa possa essere chiamata? – Charles
No, lo stai fraintendendo o non potrei trasmettere. Mi chiedo: dovremmo passare una variabile a una funzione come riferimento o restituirla dalla funzione? In quali situazioni dovremmo usare uno di questi? Spero, sono chiaro! – instanceOfObject