是的,Java JEXL(Java Expression Language)支持條件表達式。JEXL 是一個用于表達式求值的表達式語言,它允許你在 Java 程序中使用簡潔的語法來表示復雜的表達式。條件表達式是 JEXL 支持的一種基本表達式類型。
在 JEXL 中,你可以使用 ? :
符號來表示條件表達式。這個符號接受三個操作數:一個布爾表達式、一個值(當布爾表達式為 true 時返回的值)和另一個值(當布爾表達式為 false 時返回的值)。例如:
import org.apache.commons.jexl3.JEXL;
import org.apache.commons.jexl3.JEXLContext;
import org.apache.commons.jexl3.JEXLExpression;
public class JEXLExample {
public static void main(String[] args) {
JEXL jexl = new JEXL();
JEXLContext context = new MapContext();
context.set("a", 10);
context.set("b", 20);
String expression = "a > b ? a : b";
JEXLExpression jexlExpression = jexl.createExpression(expression);
Object result = jexlExpression.evaluate(context);
System.out.println("Result: " + result); // Output: Result: 20
}
}
在這個例子中,我們創建了一個 JEXL 表達式 a > b ? a : b
,它表示如果 a
大于 b
,則返回 a
,否則返回 b
。我們使用 JEXLContext
設置變量 a
和 b
的值,然后使用 JEXLExpression
計算表達式的值。