SessionHelper
生活随笔
收集整理的這篇文章主要介紹了
SessionHelper
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述:
?? ? ? ?strut2 的織入 Session 為原始 Map 類型,沒有泛型化,在添加屬性時就會有一個惱人的警告。
功能:
1、安全的消除警告
2、插入時檢查類型,如果不符就提前報錯(免得取值時才報轉換異常的錯誤)
源代碼:
package com.gq.util;import java.util.Map;public class SessionHelper {private Map session;private Class valueType;private SessionHelper( Map session, Class valueType ){this.session = session;this.valueType = valueType;}public static SessionHelper newInstance( Map session, Class valueType ){// valid parameterif( session == null ){throw new NullPointerException("session can't be null, but is null.");}if( valueType == null ){throw new NullPointerException("valueType can't be null, but is null.");}return new SessionHelper( session, valueType );}@SuppressWarnings("unchecked")// safe cast, because just put object of calss what you want.public void putIntoSession( Object key, Object value ){// valid parameterif( key == null || value == null ){throw new NullPointerException("key and value must not be null.");}// valid value's type weather what you wantif( value.getClass() != valueType ){throw new RuntimeException( "need class: " + valueType.getName() + " but is: " + value.getClass().getName() );}session.put(key, value);}}使用示例:
//session.put(USER_SESSION_KEY, user); SessionHelper.newInstance( session, User.class ).putIntoSession( USER_SESSION_KEY, user );總結
以上是生活随笔為你收集整理的SessionHelper的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java加密与解密的艺术~DES实现
- 下一篇: Struts2 的Action 命名重复