0
我正在嘗試創建一個負責管理我的應用程序的所有數據庫訪問的類,控制具有所有受保護方法的DAO對象的API。有些indentifiers在葡萄牙語,因爲我是巴西人,反正我覺得你就能理解什麼在那裏發生的..以下是代碼:如何在運行時獲取對象類型?
public class DatabaseManager {
private ItemExpansivelDataSource itemExpansivelDataSource;
private ConfiguracoesDashboardDataSource configuracoesDashboardDataSource;
private PranchaDataSource pranchaDataSource;
private PranchaRaizDataSource pranchaRaizDataSource;
private HashMap<Class<?>, DataSource<?>> dataSourcesMap;
public DatabaseManager() {
super();
this.dataSourcesMap = new HashMap<Class<?>, DataSource<?>>();
dataSourcesMap.put(ItemExpansivel.class, itemExpansivelDataSource);
dataSourcesMap.put(ConfiguracoesDashboard.class, itemExpansivelDataSource);
dataSourcesMap.put(Prancha.class, itemExpansivelDataSource);
dataSourcesMap.put(PranchaRaiz.class, itemExpansivelDataSource);
}
public void insert(Object objeto){
if(dataSourcesMap.containsKey(objeto.getClass())) {
return dataSourcesMap.get(objeto.getClass()).insert(objeto);
} else {
throw new RuntimeException(ErrorMessages.NAO_EXISTE_DATA_SOURCE.toString());
}
}
,並有我的數據源的聲明
public interface DataSource<T> {
List<T> getAll();
T findById(Integer id);
void openConection();
void closeConection();
void update(T valor);
void update(List<T> valores);
T insert(T valor);
List<T> insert(List<T> valores);
void delete(T valor);
void delete(List<T> valores);
Integer getLastInsertedRowId();
T converter(Cursor cursor);
}
我的問題是,Java不知道它會作爲參數接受什麼樣的對象,所以我不能調用插入方法,因爲我試圖做,我需要找到一個工作,但我不能想到什麼都沒有..我希望有人能給我帶來一些光明,因爲我真的認爲這是控制我的DAO對象的API的好方法。非常感謝