OrderDBManager,UserDBManager,ProductDBManager擴展DBManager。 我正在嘗試創建一個單例DBManager Factory 以獲取不同DBManager類型類的實例。Singletons工廠使用泛型和反射
但我有一個問題,使用泛型返回確切DBManager類型類用戶想要的實例。現在它只適用於DBManager本身。 我將不勝感激您的幫助!
public class DBManagerFactory {
private static final Map<String, DBManager> instances = new HashMap<>();
private static final String DB_MANAGER_PACKAGE_NAME = "ua.Test.db.";
public static DBManager getInstance(Class<? extends DBManager> dbManagerClass) {
String dbManagerClassName = dbManagerClass.getSimpleName();
DBManager dbManager = instances.get(dbManagerClassName);
if(dbManager == null){
Class clazz = Class.forName(DB_MANAGER_PACKAGE_NAME + dbManagerClassName);
dbManager = (DBManager)clazz.newInstance();
instances.put(dbManagerClassName, dbManager);
}
return dbManager;
}}
這是什麼'類的點。 forName(DB_MANAGER_PACKAGE_NAME + dbManagerClassName)'?調用者已經爲你提供了一個'Class'對象。 – Holger