在 @Shared 或 setupSpec() 中初始化对象
Initialize object in @Shared or setupSpec()
有什么区别:
@Shared
MyObject myObject = new MyObject()
和
MyObject myObject
def setupSpec() {
myObject = new MyObjec()
}
为什么要在第二个例子中使用@Shared 注解?两者都只创建一次,不是吗?
在你的第二个例子中,你可能遇到了这个错误:
Error:(22, 9) Groovyc: Only @Shared and static fields may be accessed from here
因此您可以选择以下选项之一:
在一行中使用 @Shared
注释和初始化字段
@Shared
MyObject myObject = new MyObject()
在一行中使用static
和初始化字段
static MyObject myObject = new MyObject()
在 setupSpec
方法中使用 @Shared
注释和初始化字段
@Shared
MyObject myObject
def setupSpec() {
myObject = new MyObject()
}
在 setupSpec
方法中使用 static
和初始化字段
static MyObject myObject
def setupSpec() {
myObject = new MyObject()
}
有什么区别:
@Shared
MyObject myObject = new MyObject()
和
MyObject myObject
def setupSpec() {
myObject = new MyObjec()
}
为什么要在第二个例子中使用@Shared 注解?两者都只创建一次,不是吗?
在你的第二个例子中,你可能遇到了这个错误:
Error:(22, 9) Groovyc: Only @Shared and static fields may be accessed from here
因此您可以选择以下选项之一:
在一行中使用
@Shared
注释和初始化字段@Shared MyObject myObject = new MyObject()
在一行中使用
static
和初始化字段static MyObject myObject = new MyObject()
在
setupSpec
方法中使用@Shared
注释和初始化字段@Shared MyObject myObject def setupSpec() { myObject = new MyObject() }
在
setupSpec
方法中使用static
和初始化字段static MyObject myObject def setupSpec() { myObject = new MyObject() }