У меня есть следующий метод в 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 – Flavius
Его немного не по теме, но я бы порекомендовал вам вернуть карту вместо HashMap. Таким образом, вы разделяете реализацию и интерфейс. Затем вы можете изменить реализацию, не меняя интерфейс. – sandrozbinden