Antescript: 以前に SO の質問があり、そのタイトルがまったく同じ質問を指しているように聞こえることは承知しています。そうではありません。
とにかく、この質問は少し奇妙です。ここで問題を回避するためのより良い方法はたくさんありますが、特定のジレンマをどのように解決できるかについて興味があります.
おそらく type の任意の数の要素を受け入れるためにvarargsを使用するメソッドがあるとしましょうInteger
。整数の任意の長さの配列がある場合、その配列の各要素で構成されるコンマ区切りのパラメーター リストを使用してメソッドを呼び出す方法はありますか?
以下は、簡単で不自然な例です。
Integer[] paramList = new Integer {1, 2, 3};
varMethod(paramList[0], paramList[1], paramList[2]);
// varMethod({{for (param : paramList) {param;}}});
public void varMethod(Integer...values) {
for (Integer value : values) {
foo(value);
}
}
そのコメントアウトされた行は、私がやりたいことを示唆しています。paramList
整数は任意の長さであるため、varMethod
明示的に要求された各要素 (2 行目) での呼び出しは機能しません。私が疑問に思っているのは、配列の要素からコンマ区切りのパラメーター リストを動的に生成する方法があるかどうかです。
繰り返しになりますが、このような例では、問題全体にアプローチするためのより良い方法があることを認識していますが、ここで説明している特定の問題にのみ関連するようにコードを単純化したことに注意してください. 投稿されたコードに対処する回避策は、私が実際に取り組んでいる問題に一般化されないため、最初にこの質問を定式化することになりました。