我已經進入了一些我以前沒有遇到過的Java,也就是說,我需要在運行時創建一個新的實例來說明ArrayList類,而不指定已知類型,然後將數據添加到列表中。這聽起來有點含糊所以這裏有一個例子:Java添加到未知類型的通用列表
Class<?> c = i.getClass();
Constructor<?> con = ArrayList.class.getConstructor();
ArrayList<?> al = (ArrayList<?>)con.newInstance();
al.add("something");
我現在做這個而不只是使用泛型的理由是因爲仿製藥已經被大量使用和「我」在這個例子中的變量將被給予用作類型「?」。我真的不想扔另一個通用的,因爲這會給用戶帶來更多的工作,並且在最終設計中會更不靈活。有什麼方法可以使用下面的東西(注意:下面的東西不起作用)。任何人有想法?
ArrayList<c> al = (ArrayList<c>)con.newInstance();
泛型用於編譯時驗證。在運行時,你可能不用擔心泛型類型,只是使用非泛型的'ArrayList'。 –
@Bala R你說得對,我可以刪除泛型,我只是想知道是否有辦法將它從類中拉出來以確保驗證。謝謝,你的想法可能會爲我的目的。 – ars265
我不得不問,列表的目的是什麼,你不知道它將包含的數據的類型? – Bringer128