【问题标题】:Calling java function with optional parameters from Clojure [duplicate]从 Clojure 调用带有可选参数的 java 函数 [重复]
【发布时间】:2018-01-07 15:01:44
【问题描述】:

我想使用来自 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】:

根据glts 的评论,它是这样工作的:

(Expression. "1+2" (into-array PrimitiveElement []))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2016-03-27
    • 1970-01-01
    • 2018-03-08
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多