我對groovy很新。我正在嘗試將一些業務規則從java類以dSL格式傳遞給groovy。 Java類正在從外部來源讀取它。 Groovy類具有使用構建器讀取此DSL的實現。我如何將這些規則傳遞給groovy方法?從java關閉傳遞到groovy
這一點,我的Groovy類:
def ruleSet=[:];
def displaySet=[:];
def when(String c1) {
['and': { String c2 ->
['then': { String result ->
['display':{String status ->
constructRule(c1,c2,result,status)
}]
}]
}]
}
def make(closure){
when 'a=b' and 'c=d' then 'aaaa' display 'bbbb'
when "a1=b1" and "c1=d1" then "c1c1c1" display "d1d1d1"
println ruleSet
println displaySet
}
和測試Java類有這樣的:
Class scriptClass = new GroovyClassLoader().parseClass(new File("filename.groovy")) ;
GroovyObject groovyObj = (GroovyObject) scriptClass.newInstance();
groovyObj.invokeMethod("make", new Object[] {????});
你嘗試傳遞一個lambda來常規,看看會發生什麼? –