我有一个方法需要接受List
的任何实现,创建相同实现的newList
,然后返回newList
。我想弄清楚如何确保newList
与List
的{{1}}具有相同的实现效果。请参阅附带的代码:
input
我可以重载static List<String> get(List<String> input){
// do some stuff
List<String> newList = new (?????);
// do some stuff with newList
return newList;
}
,ArrayList
,LinkedList
等方法,但我想知道是否可以在不重复一堆代码的情况下完成此操作。
答案 0 :(得分:4)
您可以尝试这样的事情
static List<String> get(List<String> input){
// do some stuff
List<String> newList = (List<String>)input.getClass().newInstance();
// do some stuff with newList
return newList;
}
input.getClass()
将返回实际的运行时实现类型。
但这可能并不总是有效:
一般来说,不要这样做。不要坚持实施。