Initialization 在@Shared或setupSpec()中初始化对象
这两者之间的区别是什么:Initialization 在@Shared或setupSpec()中初始化对象,initialization,shared,spock,Initialization,Shared,Spock,这两者之间的区别是什么: @Shared MyObject myObject = new MyObject() 及 为什么我要在第二个示例中使用@Shared注释?两者都只创建一次,不是吗?在第二个示例中,您可能会遇到以下错误: 错误:22,9 Groovyc:只能从这里访问@Shared和static字段 因此,您可以选择以下选项之一: 在一行中使用@Shared annotation和init字段 @Shared MyObject myObject = new MyObject()
@Shared
MyObject myObject = new MyObject()
及
为什么我要在第二个示例中使用@Shared注释?两者都只创建一次,不是吗?在第二个示例中,您可能会遇到以下错误: 错误:22,9 Groovyc:只能从这里访问@Shared和static字段 因此,您可以选择以下选项之一: 在一行中使用@Shared annotation和init字段
@Shared
MyObject myObject = new MyObject()
static MyObject myObject = new MyObject()
在一行中使用static和init字段
@Shared
MyObject myObject = new MyObject()
static MyObject myObject = new MyObject()
在setupSpec方法中使用@Shared annotation和init字段
在setupSpec方法中使用static和init字段
但是,如果我引用setupSpec中的成员变量,那么在第二个示例中是否必须使用@Shared?@GarfieldKlon我编辑了我的答案。我希望现在更干净。
static MyObject myObject
def setupSpec() {
myObject = new MyObject()
}