【发布时间】:2011-07-20 11:49:18
【问题描述】:
有什么办法可以修改SubService中的findModel方法返回Foo或Boo
类型而不是 Object 类型。
我希望能够只从 FooService 或 BooService 调用 findModel 而无需转换为 Foo 或 Boo 模型对象。
这可能吗?
子服务:
public Object findModel(long id, Class modelClass) {
Object modelObject = null;
javax.jdo.Query query = persistenceManager.newQuery(modelClass);
query.setFilter("id == idParam");
query.declareParameters("long idParam");
List<Object> modelObjects = (List<Object>) query.execute(id);
if(modelObjects.isEmpty()){
modelObject = null;
}
else{
modelObject = modelObjects.get(0);
}
return modelObject;
}
FooService 扩展子服务:
public Foo getFoo(long id) {
Foo modelObject = (Foo)this.findModel(id, Foo.class);
return modelObject;
}
BooService 扩展子服务:
public Boo getBoo(long id) {
Boo modelObject = (Boo)this.findModel(id, Boo.class);
return modelObject;
}
【问题讨论】:
标签: java oop inheritance casting jdo