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