1
我想通過字符串變量創建新的類實例,並將int []作爲參數傳遞給此構造函數,並將此實例保存在數組列表中。如何通過字符串名稱創建類實例
更重要的是,該類來自其他一些類,讓我們說吧。該數組列表的類型是Bar。所以:
List<Bar> something = new ArrayList<Bar>();
String name = "Foo";
int[] arr = {1, 2, 3, 4, 5};
try {
Class myClass = Class.forName(name);
Class[] types = {Integer.TYPE};
Constructor constructor = myClass.getConstructor(types);
Object[] parameters = {arr};
Object instanceOfMyClass = constructor.newInstance(parameters);
something.add(instanceOfMyClass);
} catch(ClassNotFoundException e) {
// handle it
} catch(NoSuchMethodException e) {
// handle it
} catch(InstantiationException e) {
// handle it
} catch(IllegalAccessException e) {
// handle it
} catch(InvocationTargetException e) {
// handle it
}
這是我想出的,但不幸的是它不工作。我怎樣才能傳遞整數數組(這將是什麼類型)?我如何將這個實例添加到這裏給出的數組列表中(它會拋出一個錯誤,我必須將Foo類的實例轉換爲Foo類)?
'something.add((酒吧)instanceOfMyClass);' – mostruash
什麼行引發錯誤?什麼是堆棧跟蹤? (或者這是一個編譯時錯誤?) –
嗯,它並不重要,因爲只有這兩件事情給錯誤,並糾正它的作品,謝謝! ;) – khernik