Clojure - java interop - 如何传递float数组>

时间:2011-02-07 16:40:40

标签: java clojure

我需要从clojure调用一个java函数,它将float数组作为参数。我怎么会在clojure中这样做?

我试过

(classname/function [0.1f 0.2f]) - 但这不起作用。显然问题在于参数数组。我可以在没有问题的情况下调用类中的其他函数,只要它们不将数组作为参数。

有什么建议吗?

谢谢

2 个答案:

答案 0 :(得分:7)

看起来该函数需要一组GLfloats,因此float-array的快捷方式构建可能无法满足您的需求。通用数组构建器函数是 (into-array type aseq)

所以它可能看起来像:

(def my-array (into-array GLfloat [0.0 0.0 0.0]))

进入数组虽然更加通用但是更长。

答案 1 :(得分:4)

试试float-array。来自文档:

user=> (doc float-array)
-------------------------
clojure.core/float-array
([size-or-seq] [size init-val-or-seq])
  Creates an array of floats
nil
user=> (float-array [1 2 3])
#<float[] [F@e1666>
user=>