java - Clojure 中的 "long... numbers"参数相当于什么?

标签 java clojure

我试图从 Clojure 调用这个 java 方法,但它抛出了“ClassCastException 无法将 java.lang.Long 转换为 [J java.lang.Class.cast (Class.java:3003)”

public String encrypt(long... numbers) {
  return encode(numbers, alphabet_, salt_, minHashLength_);
}

从 Clojure 调用该方法相当于什么?

最佳答案

Java 可变参数是编译为单个数组参数的语法糖。为了将数据从 Clojure 传递到此方法中,请使用 long-array 将长整型集合转换为数组。功能。

(.encrypt obj (long-array [1 2 3]))

关于java - Clojure 中的 "long... numbers"参数相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17872516/

相关文章:

java - 如何通过ArrayList递增并改变其状态?

java - 如何从另一个 Activity 创建动态选项卡

testing - 在每次测试运行之前清除 Cursive REPL 状态

compiler-construction - Lisp/Clojure DSL 的函数与符号

clojure - 尝试理解 Clojure

java - Antlr4 - 表示检查任意数量的标记的句法谓词

java - 从特定目录加载文件

java - Struts 2 session 超时

sqlite - 在 Clojure 中通过 clojure.java.jdbc 使用外键约束

clojure - 为什么 xml/emit stream 会立即发出,而直接写入流却不会