アウトプットができる技術者に

it's a time to take a new step !

Sessionのキャストを省略する

Struts2でコーディングしているときに、ふと、、、sessionのキャスト省略できるんじゃ?と思いました。

普通は、ActionクラスでSessionAwareを実装して下記のようにsessionから値を取得できます。

String a = (String) session.get("key");

でもこれって、、いちいちキャストするのが面倒。。
というわけで、こんなメソッドを作ってあげて、取得する。

@SuppressWarnings("unchecked")
private <T> T getSession(String key){
  return (T)session.get(key); 
}

// how to use
String a = getSession("key");

これを Actionクラスの Abstractなクラスに書いてあげて、Extendsして使うと。

ちょっと気持ち悪いけど、便利じゃないか?コレ?
気づいていないだけで、落とし穴があったり。。


2013.10.09

下記 突っ込みを受けたので、調査予定

そもそも、sessionから値を取得するとこがおかしいのでは?
struts2なんだから、ジェネリクスの思想が組み込まれてるはずだから、キャストしないで済む方法がありそう。