前言
在開發過程中經常遇到不確定的數據計算方式、條件判斷,后台無法准確確定如何進行計算、計算太多、判斷太多、或是計算判斷數量不確定的情況
這時候可能需要由前端動態的進行構建計算、判斷表達式然后傳到后台進行表達式運算,最終根據運行結果處理業務,由此就產生了 Java 字符串表達式運算 或 字符串表達式轉java表達式運算
話不多說,直接上示例:
示例
public static void main(String[] args) throws ScriptException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("js"); String s = "0 < 50 && 50 < 100"; Object r = engine.eval(s); System.out.println(r); if ((boolean) r) { System.out.println("成功"); } // 結果:true 成功 }
結果:
表達式運行正常
講解:
Object r = engine.eval(s);
表達式運行結果為Object 原因是表達式可以是判斷型表達式或者是計算型表達式等,返回Object 能更好體現結果
計算型表達式返回的是計算結果
判斷型表達式返回的是布爾類型
歡迎各路大神指教。。。。。。。。。。