当前位置 : 首页 » 互动问答 » 正文

在@Shared或setupSpec()中初始化对象

分类 : 互动问答 | 发布时间 : 2016-04-05 11:28:47 | 评论 : 1 | 浏览 : 410 | 喜欢 : 0

有什么区别:

 @Shared
MyObject myObject = new MyObject()

and

 MyObject myObject

def setupSpec(){
    myObject = new MyObjec()
}

为什么我应该在第二个示例中使用@Shared注释?两者都只创建一次,不是吗?

回答(1)

  • 1楼
  • 可能在你的第二个例子中你得到了这个错误:

    错误:(22,9)Groovyc:只有@Shared和静态字段可以从这里访问

    所以你可以选择其中一个选项:

    1. use @Shared注释和一行中的init字段

       @Shared
      MyObject myObject = new MyObject()
      
    2. use static和init字段在一行中

      静态MyObject myObject = new MyObject()
      
    3. use @Shared annotation和init字段在setupSpec method

       @Shared中
      MyObject myObject
      
      def setupSpec(){
          myObject = new MyObjec()
      }
      
    4. use staticsetupSpec method

      静态MyObject myObject中的init字段
      
      def setupSpec(){
          myObject = new MyObjec()
      }

相关阅读: