你不应该将你的实现绑定到List的特定实现,使用接口的想法是,从外部来看,只要它符合List接口,你实例化的具体类就不重要了.
编辑:
无论如何,这是一种可能的方式:
List lst1 = new ArrayList();
Class> klass1 = lst1.getClass();
List copy1 = (List) klass1.newInstance();
System.out.println(copy1.getClass().getName());
> java.util.ArrayList
List lst2 = new LinkedList();
Class> klass2 = lst2.getClass();
List copy2 = (List) klass2.newInstance();
System.out.println(copy2.getClass().getName());
> java.util.LinkedList
正如您在控制台中看到的,副本是与原始列表相同的类的实例.