Java使用GroovyShell计算自定义表达式

Groovy Shell,又名。groovysh是一个命令行应用程序,可轻松访问以评估Groovy表达式,定义类并运行简单的实验。现在已经支持在java里面使用

 

maven:

        <!--groovy自定义函数-->
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>2.4.7</version>
        </dependency>

 

代码测试:

    /**
     * 自定义表达式
     */
    @Test
    public void test3() {
        Binding binding = new Binding();

        binding.setVariable("F", 2.5);
        binding.setVariable("T", 1);
        binding.setVariable("A", 100);
        binding.setVariable("P", 100);

        binding.setVariable("language", "Groovy");

        GroovyShell shell = new GroovyShell(binding);

        Object F1 = shell.evaluate("P1=(1+0.1 * (F/100) * T)*P0; return P1 ");

        Object F2 = shell.evaluate("P1=P*(0.055*0.20+1.0011)+A; return P1 ");

        Object F3 = shell.evaluate("P1=P*(((F*0.20)+1.0011)+A)+100; return P1 ");

        System.out.println(F1);
        System.out.println(F2);
        BigDecimal bg = new BigDecimal((Double) F3);

        System.out.println(bg.setScale(2, RoundingMode.HALF_DOWN).doubleValue());
    }

 

测试结果:

 

posted @ 2021-03-15 18:02  千夜大魔王  阅读(1883)  评论(1编辑  收藏  举报