2015-05-29 45 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