加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

groovysh找不到方法

发布时间:2020-12-14 16:27:21 所属栏目:大数据 来源:网络整理
导读:我将以下脚本加载到groovysh中: def a() { println "a()"}def b() { println "b()" a()} 通过使用:load’test.groovy’并调用方法b(): b() 我明白了: groovy:000 b()b()No signature of method: groovysh_evaluate.a() is applicable for argument types
我将以下脚本加载到groovysh中:

def a() {
    println "a()"
}

def b() {
    println "b()"
    a()
}

通过使用:load’test.groovy’并调用方法b():

b()

我明白了:

groovy:000> b()
b()
No signature of method: groovysh_evaluate.a() is applicable for argument types: () values: []
Possible solutions: b(),any(),is(java.lang.Object),any(groovy.lang.Closure),wait(),run()
        at groovysh_evaluate.b (groovysh_evaluate:5)

为什么groovysh找不到方法a()?

解决方法

作为一种解决方法,您可以使用闭包而不是方法:

a =  {
    println "a()"
}

b = {
    println "b()"
    a()
}

它给:

groovy:000> a =  {
groovy:001>     println "a()"
groovy:002> }
===> groovysh_evaluate$_run_closure1@74a6f9c1
groovy:000> 
groovy:000> b = {
groovy:001>     println "b()"
groovy:002>     a()
groovy:003> }
===> groovysh_evaluate$_run_closure1@7922d892
groovy:000> a()
a()
===> null
groovy:000> b()
b()
a()
===> null
groovy:000>

但不知道为什么它不起作用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读