Scala中如何解决Jedis expire方法的重载定义模糊引用错误?
解决Scala中Jedis expire方法的重载模糊引用错误
问题原因
jedis.expire()存在多个重载方法,Scala编译器无法自动推断你传入的300(默认Int类型)应该匹配哪个重载定义,因此抛出「ambiguous reference to overloaded definition」错误。
解决方法
显式指定参数类型,让编译器明确匹配对应的重载方法:
方法1:将300显式声明为Int类型
修改报错行代码为:
jedis.expire("click:"+asset, 300: Int)
方法2:使用Long类型字面量(适配接受Long参数的重载)
如果需要匹配接受Long类型的重载版本,可写成:
jedis.expire("click:"+asset, 300L)
通常Redis的expire方法以Int类型接收秒数参数,因此方法1是更常用的解决方案。
内容的提问来源于stack exchange,提问作者Tito Lulu
相关产品推荐
相关产品推荐

