gpt4 book ai didi

scala - 如何从 Play 缓存中获取对象(scala)

转载 作者:行者123 更新时间:2023-12-02 00:02:45 25 4
gpt4 key购买 nike

如何从 Play 缓存中获取对象(scala)

要设置的代码:

play.api.cache.Cache.set("mykey98",  new Product(98), 0)

获取代码:

val product1: Option[Any]  = play.api.cache.Cache.get("mykey98")

我得到了 Option 对象。如何获取我在第一步中存储的实际产品对象。

最佳答案

首先,我建议使用 Cache.getAs,它接受一个类型参数。这样你就不会被 Option[Any] 困住。有几种方法可以做到这一点。在我的示例中,我将使用 String,但它与任何其他类的工作方式相同。我的首选方法是模式匹配:

import play.api.cache.Cache

Cache.set("mykey", "cached string", 0)

val myString:String = Cache.getAs[String]("mykey") match {
case Some(string) => string
case None => SomeOtherClass.getNewString() // or other code to handle an expired key
}

这个例子对于模式匹配来说有点过于简单了,但我认为当需要根据键的存在来分支代码时,它是一个更好的方法。您还可以使用 Cache.getOrElse:

val myString:String = Cache.getOrElse[String]("mykey") {
SomeOtherClass.getNewString()
}

在您的特定情况下,将 String 替换为 Product,然后更改代码以处理如果 key 不存在会发生的情况(例如设置默认 key ) .

关于scala - 如何从 Play 缓存中获取对象(scala),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20387211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com