我读过这篇文章:https: //www.ibm.com/developerworks/java/library/j-javadev2-8/index.html
清单2中的抽象类Model具有静态变量数据存储区.
abstract class Model {
static def datastore = DatastoreServiceFactory.datastoreService
...
Run Code Online (Sandbox Code Playgroud)
清单3中的Race类扩展了抽象类Model.
class Race extends Model {
public Race(params){
super(params)
}
}
Run Code Online (Sandbox Code Playgroud)
在清单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())
}
}
Run Code Online (Sandbox Code Playgroud)
这怎么可能?谢谢你的解释.
汤姆
编辑——你是对的,我之前完全走错了路。答案很简单,在groovy中,你可以在静态方法中使用'this'关键字。
http://groovy.codehaus.org/Differences+from+Java
当这样使用时,“this”指的是类,而不是实例。好极了。
| 归档时间: |
|
| 查看次数: |
7038 次 |
| 最近记录: |