無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

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

Genericsを使った型キャスト

Genericsを使って引数を任意の型にキャストする関数を書いてみました。クラス名が長くても、これを使うと簡潔にキャストすることができます。

/**
 * オブジェクトを望みの型にキャストする。
 * @param <T> キャスト後の型
 * @param o オブジェクト
 * @return キャストしたオブジェクト
 */
static <T> T as( Object o ) {
    return (T) o;
}

サンプルは以下。キャストする型であるTを明示していないのがポイント。Tは代入先の型などを見てコンパイラが良きに計らってくれるらしい。(→Java Generics FAQsを参照)

Object x = "x"; // キャストしたいオブジェクト

Object  o    = as( x ); // OK
String  str  = as( x ); // xは文字列なのでOK
Integer i    = as( x ); //ClassCastException発生。

参考: Peace - Genericsでキャストいらず