0

我使用 JEXL3 将用户输入作为字符串转换为数学函数,我想使用^asMath.pow()所以我阅读了关于扩展JexlArithemtic以覆盖的信息,bitwiseXor如下所示:http: //apache-commons.680414.n4.nabble.com/JEXL-Evaluating-数学表达式-td4112606.html

此示例适用于 Jexl2,如果我尝试覆盖,我使用 Jexl3:

class JexlArithmeticWithPow(lenient: Boolean) : JexlArithmetic(lenient) {

    override fun bitwiseXor(left: Any, right: Any): Any { //bitwiseXor is final and cannot be overriden
        val l = toDouble(left)
        val r = toDouble(right)
        return Math.pow(l, r)
    }

}

是否有另一种可能转换^Math.pow而不是bitwiseXor

4

1 回答 1

0

在 JEXL3 中,JexlArithmetic 方法 bitwiseXor 已被弃用(并成为最终方法);替换方法是public Object xor(Object left, Object right);。请注意,使用 JEXL3,您可能只想为该数字方法添加重载,即public Object xor(Number left, Number right);.

于 2017-12-26T11:31:51.703 回答