加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

groovy – 静态方法中的非静态变量“this”

发布时间:2020-12-14 16:25:26 所属栏目:大数据 来源:网络整理
导读:我读了这篇文章: https://www.ibm.com/developerworks/java/library/j-javadev2-8/index.html 清单2中的抽象类Model具有静态变量数据存储区. abstract class Model { static def datastore = DatastoreServiceFactory.datastoreService ... 清单3中的Race类
我读了这篇文章:
https://www.ibm.com/developerworks/java/library/j-javadev2-8/index.html

清单2中的抽象类Model具有静态变量数据存储区.

abstract class Model {
 static def datastore = DatastoreServiceFactory.datastoreService
  ...

清单3中的Race类扩展了抽象类Model.

class Race extends Model {
 public Race(params){
  super(params)
 }
}

在清单5和清单6中,使用静态方法中的作者非静态变量数据存储(this.datastore).我想,静态方法是在Race类中.

static def findByName(name){
     def query = new Query(Race.class.simpleName)
     query.addFilter("name",Query.FilterOperator.EQUAL,name)
     def preparedQuery = this.datastore.prepare(query)
     if(preparedQuery.countEntities() > 1){
      return new Race(preparedQuery.asList(withLimit(1))[0])
     }else{
      return new Race(preparedQuery.asSingleEntity())
     }
    }

这怎么可能?谢谢你的解释.
汤姆

解决方法

编辑 – 你是对的,我以前在完全错误的轨道上.答案很简单,在groovy中,你可以在静态方法中使用’this’关键字.

http://groovy.codehaus.org/Differences+from+Java

当这样使用时,’this’指的是类,而不是实例. Groovy的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读