添加到未知类型泛型列表的 Java
2022-09-04 01:14:22
我已经遇到了以前在Java中没有遇到过的事情,也就是说,我需要在运行时创建一个新的实例,比如ArrayList类,而无需分配已知类型,然后将数据添加到列表中。这听起来有点模糊,所以这里有一个例子:
Class<?> c = i.getClass();
Constructor<?> con = ArrayList.class.getConstructor();
ArrayList<?> al = (ArrayList<?>)con.newInstance();
al.add("something");
现在,我这样做而不是仅使用泛型的原因是因为泛型已经被大量使用,并且此示例中的“i”变量将用作类型“?”。我真的宁愿不投入另一个通用,因为这会给用户带来更多的工作,并且在最终设计中会不那么灵活。有没有办法使用下面这样的东西(注意:下面的内容不起作用)。有人有想法吗?
ArrayList<c> al = (ArrayList<c>)con.newInstance();