次のシグネチャを持つメソッドがあります。
public static String concatAndSeperate(Object seperator, Object... obj)
このメソッドの目的は、obj 内のオブジェクトを、obj のエントリ間に区切り文字で連結することです。
これで、重大な副作用のために変更できない int 配列ができました。
int[] numbers = new int[] {1, 2, 3, 4, 5, 6, 7};
これらの数値を SQL IN ステートメントに使用したい:
SELECT * FROM quux WHERE id IN (1, 2, 3, 4, 5, 6, 7);
だから私は私のすてきな小さな方法でそれを連結しようとします:
concatAndSeperate(", ", numbers);
もちろん、これは機能しません。数値は整数配列であり、整数配列ではないためです。だから私はそれから整数配列を作ろうとします:
concatAndSeperate(", ", Arrays.asList(numbers).toArray(new Integer[numbers.length]);
これにより、理解できないエラーが発生します。
Exception in thread "main" java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays$ArrayList.toArray(Unknown Source)
at mystuff.MyClass.main(MyClass.java:415)