2011年4月1日金曜日

キャストに失敗するとnullを返すメソッド

キャストが失敗したらnullを返すメソッドを作りたいけど、
戻り値がObjectだともう一回キャストしないといけない…

そんな悩みを経て、
総称型で解決させることにしました。

public <T> T castInstance(final Object object, final Class<T> clazz) {
    try {
        return clazz.cast(object);
    } catch (ClassCastException e) {
        return null;
    }
}

これでメソッドの戻り値型が動的に変化します。
ああ、キャストに失敗する可能性が高い場合はinstanceofとかで判定した方がいいかもしれません。

…役に立つの?これ。

0 件のコメント:

コメントを投稿