最近使用clojure写一个小项目中间需要用到java的一些库,在clojure调用java的varargs function 的时候报错,看了下clojure的官方文档说是可以直接调用,但是可能是因为版本问题,现在已经不支持按直接传参的方式调用java varargs function,我呀调用的目标函数原先如下:
public Long lpush(String key, String... strings) {
this.checkIsInMultiOrPipeline();
this.client.lpush(key, strings);
return this.client.getIntegerReply();
}
正确的调用方式
(doto (Jedis. conf-redis-host conf-redis-port)
(.lpush "key"
(into-array String ["val"])))
错误的调用方式
(doto (Jedis. conf-redis-host conf-redis-port)
(.lpush "key" "val"))