美文网首页
Java/javaScript将字符串转变成可执行的语句

Java/javaScript将字符串转变成可执行的语句

作者: HeloWxl | 来源:发表于2020-11-07 15:11 被阅读0次

java

  • 以下语句如何执行?
 int money = 2500;
 String str = "money>=2000&&money<=4000" ;
 System.out.println(str);
  • 解决办法:
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-jexl</artifactId>
    <version>2.0</version>
</dependency>
  /**
    * @Description: 将字符串转换成可执行代码
    * @params: [jexlExp, map]
    * @return: java.lang.Object
    * @Author: wangxianlin
    * @Date: 2020/11/4 4:32 PM
    */ 
    public static Object convertToCode(String jexlExp,Map<String,Object> map){
        JexlEngine jexl=new JexlEngine();
        Expression e = jexl.createExpression(jexlExp);
        JexlContext jc = new MapContext();
        for(String key:map.keySet()){
            jc.set(key, map.get(key));
        }
        if(null==e.evaluate(jc)){
            return "";
        }
        return e.evaluate(jc);
    }

    public static void main(String[] args) {
        try {
            Map<String,Object> map=new HashMap<String,Object>();
            map.put("money",2100);
            String expression="money>=2000&&money<=4000";
            Object code = convertToCode(expression,map);
            System.out.println(code);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
  • 运行结果


    image.png

javaScript

var x = 2500;
var str = "x>=2000&&x<=4000" ;
console.log(str);
  • eval()
    函数可计算某个字符串,并执行其中的的 JavaScript 代码。
  • 运行结果


    eval.png

相关文章

网友评论

      本文标题:Java/javaScript将字符串转变成可执行的语句

      本文链接:https://www.haomeiwen.com/subject/kigfbktx.html