ただ行う:
new SequenceEntityModifier(arr.toArray(new IEntityModifier[arr.size()]));
ArrayList
これは、指定された配列に をコピーして返します。すべての vararg 関数は、引数に配列を取ることもできます。
public void doSomething(Object... objs)
すべての正当な呼び出しは次のとおりです。
doSomething(); // Empty array
doSomething(obj1); // One element
doSomething(obj1, obj2); // Two elements
doSomething(new Object[] { obj1, obj2 }); // Two elements, but passed as array
1 つの警告:
プリミティブ配列を含む Vararg 呼び出しは、期待どおりに機能しません。例えば:
public static void doSomething(Object... objs) {
for (Object obj : objs) {
System.out.println(obj);
}
}
public static void main(String[] args) {
int[] intArray = {1, 2, 3};
doSomething(intArray);
}
1
これは、 、2
、および3
を別々の行に出力すると予想されるかもしれません。[I@1242719c
代わりに、 (のデフォルトのtoString
結果)のようなものを出力しますint[]
。これは、最終的にObject[]
を 1 つの要素で作成しているためです。これは私たちのint[]
です。例:
// Basically what the code above was doing
Object[] objs = new Object[] { intArray };
double[]
、 、およびその他のプリミティブchar[]
配列型についても同様です。intArray
これは、 のタイプをに変更するだけで修正できることに注意してくださいInteger[]
。int[]
を に直接キャストできないため、既存の配列を使用している場合、これは簡単ではないかもしれません(この質問Integer[]
を参照してください。Apache Commons Langのメソッドが特に好きです)。ArrayUtils.toObject