drools類型轉換


在進行比較時 memberOf和contains Of 進行比較時操作兩邊的值類型要相同,如下:

36 memberOf ["24","36"] false
36 memberOf [24,36] true

"36" memberOf [24,36] false
"36" memberOf ["24","36"] true

強制轉換

當兩個不同類型且沒有可比性的值進行比較時,需要將右邊的值強制轉換成左邊的值的類型時,MVEL會應用類型強制轉換系統,反之亦然。

約束條件的比較過程中是會進行強制類型轉換的,比如在數據計算中傳入字符串“10”,則能成功轉換成數字10進行計算。但如果,此時傳入的值無法進行轉換,比如傳了“ten”,那么將會拋出異常。

當使用在String字符串的比較時,則按照字母順序進行排序。

相同類型 map.put("crate","26"); 規則配置:get("crate")<"3" 返回true 比較對應字符的大小(ASCII碼順序) compareTo 如果小於返回負數
相同類型 map.put("crate",26);   規則配置:get("crate")<3 返回false

不同類型 map.put("crate","26"); 規則配置:get("crate")<3 返回false 不同類型但是值具有可比性 按數字進行比較
不同類型 map.put("crate",26);   規則配置:get("crate")<"3" 返回false 不同類型但是值具有可比性 按數字進行比較
---------------------------------------------------------------------------------------------------------------------------
相同類型 map.put("crate","26"); 規則配置:get("crate")<"a" 返回true 比較對應字符的大小(ASCII碼順序)
不同類型 map.put("crate","a");   規則配置:get("crate")<3 報錯 值類型不同又沒有可比性會發生強制轉換 java.lang.Integer cannot be cast to java.lang.String
如下代碼:Integer a = 3; String aStr = (String)a; 此時編譯器報強轉異常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM