我學習Scala,並試圖在Scala代碼使用javax.cache,找不到如何解決這個問題:如何在Scala中使用JCache?我得到的編譯器類型錯誤:找到字符串所需ķ
val cacheFactory = CacheManager.getInstance.getCacheFactory
val map = new HashMap
val cache = cacheFactory.createCache(map)
def rawSet(key:String, value:Array[Byte]) {
cache.put(key, value)
}
和編譯器錯誤:
error: type mismatch
found: String
required: K
in cache.put(key, value)
編輯:
正如丹尼爾說,我應該說我在App Engine的,因爲這似乎是高度相關的問題提到。在這種情況下,解決方案是在Java中創建一個小類來執行此特定代碼,並從Scala調用它。
沒有運氣,我不能使用asInstanceOf,我在運行時得到這個: java.lang.ClassCastException:com.google .appengine.api.memcache.stdimpl.GCache不能轉換爲java.util.HashMap (我是通過應用程序引擎) – Damian 2009-11-02 00:46:41
如果您是通過應用程序引擎,您應該提到在問題中,因爲這是高度相關的。在這種情況下,你應該用Java創建一個小類來完成這個特定的代碼,並從Scala調用它。 – 2009-11-02 03:04:03
好吧,非常感謝,我認爲jcache的應用引擎實現完全兼容。我也認爲* scala可以使用任何* java代碼。 – Damian 2009-11-02 10:02:33