1

我们正在尝试遵循http://www.playframework.com/documentation/2.1.1/JavaCache中列出的“模板中的缓存”示例,编译器会向我们抛出“ not enough arguments for method getOrElse”异常消息。

我们在模板中的代码:

@play.cache.Cache.getOrElse("cached-content", 3600){
    test
}

所以我们决定挖掘API,显然我们仍然缺少java.util.concurrent.Callable参数。有谁知道我们应该为该参数传递什么?

谢谢

播放 2.1.1 Javadoc

4

1 回答 1

3

这是因为您正在尝试使用 Scala 模板中的 Java API 以及 Scala 缓存 API 的语法。如果您想使用文档中的示例,您需要编写如下内容:

@import play.api.Play.current
@play.api.cache.Cache.getOrElse("key", 3600) {
    <h1>Cached content</h1>
} 

play.api 包是 Scala API 的包。

如果您想从模板中使用 Java Cache API,此 API 需要 3 个参数,您需要编写如下内容:

@play.cache.Cache.getOrElse("key", new java.util.concurrent.Callable[String] {
    def call: String = "Cached content again"
}, 3600)
于 2013-05-09T08:26:15.253 回答