2015-05-29 40 views
2

我从memcached获得值并尝试转换List类但我得到类异常像这样java.lang.String不能转换为java.util.List任何人都可以帮忙吗?主题是POJO类使用Whalin memcached检索Memcached值

代码

MemCachedClient mc = new MemCachedClient(); 
List<Topic> topicList = (List<Topic>) mc.get("topics"); 

错误

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List 

在内存缓存的关键 “主题” 包含主题类仅列出

我的内存缓存添加和获取代码是 public void add(String key, Object value) { System.out.println("The Object Values are:"+value.getClass().getName()); mcClient.set(key, value); } public Object get(String fqn) { System.out.println("Gets class Name:"+mcClient.get(fqn).getClass()); return mcClient.get(fqn); }

我的结果是 The Object Values are:java.util.LinkedList Gets class Name:class java.lang.String

在添加到memcached中时,它在链接列表中,但我从中获取它是在字符串中的memcache值我不知道它为什么。

任何人都可以帮助....?

+0

请向我们展示导致Exception和StackTrace的代码。请编辑你的帖子,并在那里添加信息 – Alexander

回答

0

看起来像mc.get("topics")正在返回List<String>而不是像您期待的那样List<Topic>。你可以仔细检查你存储在缓存中的内容。

+0

是的检查我存储'列表'只。我认为Whalin Memcached客户端将方法返回为String对象'使用特定的哈希从服务器检索密钥。如果数据在压缩时被压缩或序列化,则会自动将 解压缩或序列化。 (包含或) 非序列化数据将作为字符串返回,因此如果需要,将显式转换为 数字类型将是必要的 ' – Mohamed