public static <T> T inCache(T obj) throws ClassNotFoundException {
String[] token = validateCookie(); //gives me to strings
if (token == null)
return null;
if (Cache.get(token[0]) != null) {
if (Cache.get(token[0]).getClass() == Class.forName(token[1])
&& obj.getClass() == Cache.get(token[0]).getClass()) {
T test = (T) Cache.get(token[0]);
return test;
}
}
return null;
}
上記のコードは完全に間違っています。
基本的に私はこのようなことをしたいです:
- 関数にクラスを設定したい。例えば
inCache<User>();
キャッシュから取得したオブジェクトに、以前に指定したものと同じクラスがあるかどうかを確認します。
(obj.getClass == User.class)
クラスが一致する場合は、オブジェクトをクラスにキャストして返します。
return (User)obj
こんな風に使いたいです。
User user = inCache<User>();