你可以重寫你的表達
(TL_HS_NGUNG_LUONGKY1 == 1)? 0: TL_HS_K_DC_KY1 * NS_HSL * TL_HS_TL_TTDV;
因爲它成爲JavaScript表達式,你可以使用它作爲以下
public static void main(String[] args) throws ScriptException, MalformedURLException, IOException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
engine.getContext();
engine.eval("TL_HS_NGUNG_LUONGKY1=10");
engine.eval("TL_HS_TL_TTDV=10");
engine.eval("TL_HS_K_DC_KY1=20");
engine.eval("NS_HSL=20");
Object result = engine.eval("(TL_HS_NGUNG_LUONGKY1 == 1)? 0: TL_HS_K_DC_KY1 * NS_HSL * TL_HS_TL_TTDV;");
System.out.println(result);
}
或者使用被稱爲Shy-外部庫Ta
public static void main(String[] arg){
ExpressionsEvaluator evalExpr = new ExpressionsBuilder("IF(TL_HS_NGUNG_LUONGKY1 == 1, 0, TL_HS_K_DC_KY1 * NS_HSL * TL_HS_TL_TTDV)").build();
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("TL_HS_NGUNG_LUONGKY1", 10);
variables.put("TL_HS_K_DC_KY1", 10);
variables.put("NS_HSL", 1);
variables.put("TL_HS_TL_TTDV", 12);
System.out.println(evalExpr.eval(variables));
}
不明確的問題.. – MVCNoob
請檢查此http://stackoverflow.com/help/mcve並添加更多信息 – grsdev7
嘿泉,正如已經提到的,你的問題有點不清楚。請查看幫助中心的[問]文章,瞭解如何改進它的一些提示。 – Gulllie