Groovy静态范围

时间:2017-11-03 17:41:06

标签: groovy

我正在尝试运行此脚本。如果我把它全部拉出课堂,它运行正常。当我将它包装在我的“Test”类中​​时,我收到此错误:

  

在静态范围内找到了表观变量'json_users',但没有   引用局部变量,静态字段或类

class Test{

    def testProc(JsonBuilder json_List) {

        println json_List.prettyPrint

    }

    public static void main(String[] args){

        def query = 'Select * from mytable'    

        def resultset = sql.rows(query)

        json_users = new JsonBuilder(users:resultset)    

        testProc(json_users)
    }
}

知道为什么我收到这个错误?

1 个答案:

答案 0 :(得分:0)

有很多错误。一个是你不能从静态方法调用实例方法。另一个原因是你不能在没有声明的情况下引用json_users(你可以在脚本中,但不能在类中)。

而不是:

class Test {

    def testProc(JsonBuilder json_List) {

        println json_List.prettyPrint

    }

    public static void main(String[] args){

        def query = 'Select * from mytable'    

        def resultset = sql.rows(query)

        json_users = new JsonBuilder(users:resultset)    

        testProc(json_users)
    }
}

试试这个:

class Test {

    static testProc(JsonBuilder json_List) {

        println json_List.prettyPrint

    }

    static void main(args){

        def query = 'Select * from mytable' 

        // you will have to declare and initialize
        // the sql variable.

        def resultset = sql.rows(query)

        def json_users = new JsonBuilder(users:resultset)    

        testProc(json_users)
    }
}