我已经进入了一些我以前没有遇到过的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