如图java 版本中,ShardJedis 中有一可变参数的函数
public List<String> hmget(String key, String... fields) {
Jedis j = getShard(key);
return j.hmget(key, fields);
}
则,在scala 中的调用如下。
val res = jedis.hmget(key, fields:_*)
fields 是scala 的可变长度参数
override def hmget(key: String, clazz: Class[String], fields: String*): Result[util.List[String]] = {
var jedis:ShardedJedis = null
var broken = false
try {
jedis = shardedJedisPool.getResource
val res = jedis.hmget(key, fields:_*)
if (res == null || res.size() != fields.length) {
Result.createError(ResultCode.REDIS_ERROR.toString,
ResultCode.REDIS_ERROR.id)
} else {
Result.createSuccess(res)
}
} catch {
case ex:Exception =>
broken = handleException(ex)
Result.createError(ResultCode.REDIS_ERROR.toString,
ResultCode.REDIS_ERROR.id)
} finally {
closeResource(jedis, broken)
}
}