推薦一款好用的Java表達式執行引擎

最近在項目中需要根據不同的條件來做走不同分支的邏輯,那麼就需要動態判斷條件表達式結果(不想寫一堆if else),研究了一番,發現了一個輕量級的Java表達式執行引擎:aviator,整個使用下來挺簡單高效的,今天推薦給大家,下面介紹啊一下這款框架!
在這裏插入圖片描述

二.aviator簡介

Aviator是一個輕量級、高性能的Java表達式執行引擎, 它動態地將表達式編譯成字節碼並運行,主要用於各種表達式的動態求值!相比Groovy這樣的重量級腳本語言,aviator是非常輕量級的表達式執行引擎。

二.aviator特性

  • 支持絕大多數運算操作符,包括算術操作符、關係運算符、邏輯操作符、位運算符、正則匹配操作符(=~)、三元表達式
  • 支持傳入變量

我在開發裏用到的就是關係運算符,動態判斷執行結果(true/false),以兩個變量a、b爲例看下aviator的執行方式:

圖片

aviator提供了AviatorEvaluator#execute(java.lang.String)方法來執行操作運算符

  • 內置一套強大的常用函數庫

圖片

  • 支持自定義函數

如果自帶函數不能滿足開發需要, aviator還支持自定義函數,只要實現com.googlecode.aviator.runtime.type.AviatorFunction接口, 並註冊到AviatorEvaluator即可使用!

註冊函數通過AviatorEvaluator.addFunction方法, 移除可以通過removeFunction方法

  • 支持賦值

圖片

aviator提供的特性還有很多,不再一一舉例,github地址如下,有興趣的可以進一步學習應用

https://github.com/killme2008/aviator

​​​​​​
更多內容歡迎關注個人微信公衆號,一起成長!

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章