我有一個數據庫,其中有一個類名稱列表,我想放在一個List<MyInterface>
。使用Class.forName()並實例化類
我這樣做:
List<MyInterface> list = new ArrayList<MyInterface>();
for(...) {
MyInterface obj = (MyInterface)Class.forName(myClassString).newInstance();
list.add(obj);
}
這工作得很好。
有什麼辦法可以將新實例投入myClassString
而不是接口?
喜歡的東西:
這部分不可能是正確的:'新名單()'你不能實例化'名單'interface –
會發生什麼變化?由於您調用該類的構造函數來獲取實例,因此該對象的具體類型屬於myClassString中的類型。施放它不會改變任何東西。 –
因爲在我想使用的接口中沒有具體類中的方法。所以將它投入界面將無法工作。我想我將不得不做一個如果塊... – mmaceachran