日曜日, 6月 21, 2009

[Scala] GAE/JのMemcacheサービス

Scalaで、なぜかGAE/JのMemcacheサービスをJCacheを経由して使う方法が分からない。
直接APIを使ってよいなら下のソースな感じで大丈夫なのだけど。
import com.google.appengine.api.memcache._

class memcached {
val cache:MemcacheService = MemcacheServiceFactory.getMemcacheService();

def setValue(strKey:String,strValue:String) = {
cache.put(strKey,strValue);
}

def getValue(strKey:String):String = {
cache.get(strKey).asInstanceOf[String];
}

}

JCache経由にしようとしたら、出てしまうエラー。Kってjava.util.MapのKっぽいんだけど解決方法が分からない。。
 ~snip~
[scalac] D:\work\workspace\test\src\com\digipepper\memcached.scala:51: error:
type mismatch;
[scalac] found : String
[scalac] required: K
[scalac] cache.put(key, value);
[scalac] ^
 ~snip~
お分かりの方は是非コメントください。一部ではGAE/JをPythonで使うべきかJavaで使うべきか、から発展した大変な議論が巻き起こったようですが、私はのんびりとScalaでがんばります。