【发布时间】:2012-01-03 16:24:23
【问题描述】:
我有一个public abstract class Model { //impl } 的以下方法(完全像这样声明):
protected <T extends Model> HashMap<String, Model> resultsetMap(ResultSet res) {
HashMap<String, Model> data = new HashMap<String, Model>();
try {
while(res.next()) {
Model obj = T.getNew(res);
data.put(obj.toString(), obj);
}
} catch(SQLException e) {
return null;
}
return data;
}
-
T应该告诉调用者它应该使用的具体类。这可能吗? - 如何从
Model子类的另一个方法调用此方法?我试过resultsetMap<Course>(res);,但它看起来像一个语法错误
【问题讨论】:
-
“这可能吗?”是什么意思?你试过编译吗?
-
不,我没有,我是一位经验丰富的程序员(还不是在 java 中),我想因为对语言没有感觉而受到抨击。如果我没有受到抨击,这对我来说意味着我走在正确的道路上:D
-
有点离题,但我建议您返回 Map 而不是 HashMap。因此,您将实现和接口分开。然后你可以在不改变界面的情况下改变实现。
-
谢谢@zbindigonzales,会的。