Java Groovy脚本中@Field变量的使用
我的Groovy脚本中有一个带有全局变量的脚本 我在函数中使用它时遇到问题。我可以知道原因还是正确的方法吗? 我要用它做一个伐木工人。可以访问其他基本数据类型,但我不能Java Groovy脚本中@Field变量的使用,java,logging,groovy,Java,Logging,Groovy,我的Groovy脚本中有一个带有全局变量的脚本 我在函数中使用它时遇到问题。我可以知道原因还是正确的方法吗? 我要用它做一个伐木工人。可以访问其他基本数据类型,但我不能 @Field def log = Logger.getLogger("NameOfLogger") log.info("TEST") testFunction() private void testFunction() { //cannot use the log variable here } 我现在知道原因了。这是
@Field def log = Logger.getLogger("NameOfLogger")
log.info("TEST")
testFunction()
private void testFunction() {
//cannot use the log variable here
}
我现在知道原因了。这是因为我将它声明为
def
但是我仍然不知道为什么
def
不能被使用的真正原因。以下代码对我很有用(我没有尝试使用log,但使用了在线groovy控制台):
输出:
Global Person(John, 30)
Inside method: Person(John, 30)
所以首先要确保你有合适的进口产品
现在,值得一提的是,groovy创建了一个隐式类,字段注释改变了全局变量的范围,并将其移动到该隐式类的字段中,这样person
和testFunction
都将属于该类,并且从方法中访问字段不会有问题
Global Person(John, 30)
Inside method: Person(John, 30)