Как вызвать Groovy скрипт из Scala?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <facts>    
    <fact id="ItemPrice" displayName="Item Price">
    <defaultValue>0</defaultValue>
    <script><![CDATA[ 
            Double Value_Sales= 500;
            Double Unit_Sales= 10;
            Double res=Value_Sales/Unit_Sales;
            return res;
    ]]></script>
</fact>
</facts>

Выше приведен пример скрипта groovy, написанного в xml-файле для определения цены товара.

Java-код для обработки Groovy:

List<Fact> factList = NREUtils.readXml("/SampleDictionary.xml") //cutome API
GroovyShell shell = new GroovyShell();
String scriptStr = factList.get(0).getScript();
Script groovyScript = shell.parse(scriptStr); // return "ItemPrice" script 
Binding binding = new Binding();
groovyScript.setBinding(binding);
Object val = groovyScript.run(); // **Result will be 50**

Я хотел бы соответствующий код Scala для того же.

1 ответ

Без дополнительной информации о вашей проблеме, поскольку оба языка (scala и groovy) выполняются в JVM, я бы посоветовал вам просто скомпилировать код groovy и включить jar в classpath JVM, в котором выполняется ваш код scala.

Здесь у вас есть несколько идей о том, как превратить отличный код в полезный байт-код: http://docs.groovy-lang.org/latest/html/documentation/tools-groovyc.html

Затем сделайте так, как вы делаете с любой библиотекой Java, которую вы хотели бы вызвать из Scala: Использование библиотек Java в Scala

Другие вопросы по тегам