围绕main方法的Groovy程序结构问题

ecfdbz9o  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(62)

我试着写一个Groovy程序,但不知道我做错了什么。

package mypackage

class myclass {
    def myvar

    def mymethod() {
        myvar = "here"
        println "i am ${myvar}"
    }

    def static main(args) {
        mymethod()
        println "hello "
    }
}

字符串
在我的例子中,我想我是-
1.声明一个包“mypackage”
1.创建一个类“myclass”
1.创建类变量“myvar”
1.创建一个类方法“mymethod”
1.创建一个类方法“main”,期望在调用时调用它
因此,我希望“main”被调用所有我的命令行参数。它将调用“mymethod”,这将更新类变量“myvar”,然后打印一个GString插值“myvar”。然后控制将返回到“main”,此时它将打印“hello”。
但这一切都没有发生。相反,当我试图执行它时,

$ groovy myclass
Caught: groovy.lang.MissingMethodException: No signature of method: static mypackage.myclass.mymethod() is applicable for argument types: () values: []
Possible solutions: mymethod()
groovy.lang.MissingMethodException: No signature of method: static mypackage.myclass.mymethod() is applicable for argument types: () values: []
Possible solutions: mymethod()
        at mypackage.myclass.main(myclass:7)


我认为这是一个通用的程序结构问题。

twh00eeo

twh00eeo1#

main方法是静态的,并且确实正在被调用。但是在这个阶段,您没有myclass的示例,所以不应该期望能够调用示例方法mymethod
您可以将myvarmymethod更改为静态,或者将main中的第一行更改为:

new myclass().mymethod()

字符串

相关问题