簡體   English   中英

將通用類型傳遞給Scala中的通用方法

[英]Pass generic type to a generic method in scala

我寫了一個函數

def getOptional[A](key: String) : Option[A] = {
   redisClients.withClient(redisClient =>
      redisClient.get[A](key)
   )
}

我在叫它

redis.getOptional[List[Long]](REDIS_PREFIX_PRODUCT_IDS)

但這引發了異常

could not find implicit value for parameter parse: com.redis.serialization.Parse[A][error] redisClient.get[A](key)

這是什么問題?

get需要一個附加的隱式參數Parse[A] 如果沒有Parse[A] ,則不清楚要解析什么,因為在運行時會擦除類型A 嘗試以下方法:

import com.redis.serialization.Parse
def getOptional[A: Parse](key: String) : Option[A] = {
  redisClients.withClient(redisClient =>
    redisClient.get[A](key)
  )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM