我正在尝试运行此脚本。如果我把它全部拉出课堂,它运行正常。当我将它包装在我的“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)
}
}
知道为什么我收到这个错误?
答案 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)
}
}