使用Clojure中的可选参数调用java函数[复制]

问题描述 投票:1回答:1

这个问题在这里已有答案:

我想使用clojure中的mXparser,它有一个带有多个构造函数的Expression Java类:

  1. public Expression(PrimitiveElement...elements) { ... }
  2. public Expression(String expressionString, PrimitiveElement...elements) { ... }

在Java中,我可以使用String参数创建新实例:

Expression e = new Expression("1+2");

我假设它使用第二个构造函数,因为第一个参数是字符串,第二个参数是可选的。

现在我想在clojure中做同样的事情:

(Expression. "1+2")

它失败了

java.lang.String cannot be cast to [Lorg.mariuszgromada.math.mxparser.PrimitiveElement;

看起来它正在尝试使用第一个不是我想要的构造函数。

如何使用字符串参数在Clojure中创建此类的新实例?

java constructor clojure optional-parameters
1个回答
1
投票

根据glts的评论,它以这种方式工作:

(Expression. "1+2" (into-array PrimitiveElement []))
© www.soinside.com 2019 - 2024. All rights reserved.