読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

型パラメータで示される型の配列を作りたい

generic array creationより。型パラメータで示される型の配列を作りたい場合、普通にnewして作ることはできないのでリフレクションを使って作っていたのだけど、

// aとbの配列を作りたい。
X a = null;
X b = null;

// これはエラーになるので・・
// X[] array = new X[2];

// リフレクションで作る
X[] array = (X[])  Array.newInstance( a.getClass(), 2 );
array[0] = a;
array[1] = b;

↓のようなメソッドを作ってやればいいのか。

// 指定された引数の配列を作る。
static <X> X[] toArray( X... args ) {
    return args;
}
・・・・

// こんな感じで使う。
X a = null;
X b = null;
X[] array = toArray(a,b);

なるほどねー。配列の長さを指定したいとかなると話は違ってくるけど、最初のサンプルのような固定長の要素を値に持つ配列をさくっと作りたい場合には便利そう。ふむふむ。