Generics では配列が使えないようだし、
Arrays.asList で作った List オブジェクトは addAll メソッドが使えなかった orz

しょうがないのでリフレクション(Arrayクラス) と System.arraycopy を使って、配列を連結する。


import java.lang.reflect.*;
 
public class Arrayz {
 
  public static void main(String[] args) {
 
    String[] a = {"いろ", "はに", "ほ", "へ", "と"};
    String[] b = {"ちり", "ぬる", "を", "わ", "か"};
    String[] c = (String[])concat(String.class, a, b);
    for(int i=0;i<c.length; i++){
      System.out.print(c[i]);
    }
    System.out.println();
  }
 
  public static Object[] concat(Class cls, Object[] a, Object[] b) {
    Object[] dst = (Object[])Array.newInstance(cls, a.length + b.length);
    System.arraycopy(a, 0, dst, 0, a.length);
    System.arraycopy(b, 0, dst, a.length, b.length);
    return dst;
  }
  
}

出力結果:


いろはにほへとちりぬるをわか

# あぁ、厳しい……もっと手軽に配列をつなげたい

tags: zlashdot Java Java

Posted by NI-Lab. (@nilab)