public static void main(def args){
// TODO Auto-generated method stub
def greeting ='hello'
def clos = {param->println "${greeting} ${param}"}
clos.call('world')
greeting ='Welcome'
clos.call('world')
demo(clos)
}
def demo(clo){
def greeting ='Bonjour'
clo.call('ken')
}
hello world
Exception in thread "main" groovy.lang.MissingMethodException: No signature of method: static com.cenyol.example.controller.Groovy1.demo() is applicable for argument types: (com.cenyol.example.controller.Groovy1$_main_closure1) values: {com.cenyol.example.controller.Groovy1$_main_closure1@2fcac6db}
at groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1155)
Groovy中 main方法不能引用其他方法。
抛出异常:
No signature of method: static com.cenyol.example.controller.Groovy1.demo()
</pre><pre code_snippet_id="1814346" snippet_file_name="blog_20160807_4_8090775" name="code" class="java">嵌套在groovy中不试用
这样更改代码后没有嵌套:
public class Groovy1{
/**
* @param args
*/
public static void main(def args){
// TODO Auto-generated method stub
def greeting ='hello'
def clos = {param->println "${greeting} ${param}"}
clos.call('world')
greeting ='Welcome'
clos.call('world')
def aa = new test1()
aa.demo(clos)
}
}
public class test1{
def demo(clo){
def greeting ='Bonjour'
clo.call('ken')
}
}
打印结果:
hello world
Welcome world
Welcome ken
注意是welcome ken