タイトルから明らかなように、どのアプローチを優先すべきでしょうか?
意図は、いくつかのメソッド パラメーターを渡し、出力として何かを取得することです。別のパラメーターを渡すことができ、メソッドはそれを更新し、メソッドは何も返す必要はありません。メソッドは出力変数を更新するだけで、呼び出し元に反映されます。
この例を通して質問を組み立てようとしています。
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
}
対
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;
}
1 つはリファレンスを通過し、もう 1 つは通過しないことを理解しています。
(さまざまな状況で) どちらを優先する必要がありますか? また、その理由は?
更新:変更可能なオブジェクトについてのみ検討してください。