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的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |