Я разрабатываю простой объект доступа к данным для своего приложения Java. У меня есть несколько классов (записей), которые представляют одну строку в таблицах типа User
и Fruit
.
Я хотел бы иметь единственный метод для получения всех записей определенного типа.
На данный момент у меня это так:
public List<User> getAllUsers() {
...
}
public List<Fruit> getAllFruits() {
...
}
....
Но я хотел бы иметь один полиморфный метод, подобный этому (неправильный):
public List<T> getAllRecords(Class<T> type) {
if(type instanceof User) {
// Use JDBC and SQL SELECT * FROM user
} else if(type instanceof Fruit) {
// Use JDBC and SQL SELECT * FROM fruit
}
return collection;
}
Пример использования:
List<Fruit> fruits = myDataAccessObject.getAllRecrods(Fruit.class);
List<User> users = myDataAccessObject.getAllRecords(User.class);
Как это сделать в Java?