【发布时间】:2018-05-10 20:15:46
【问题描述】:
我有一个方法需要接受List 的任何实现,创建一个相同实现的newList,并返回newList。我试图弄清楚如何确保newList 与List 的实现相同input。见附件代码:
static List<String> get(List<String> input){
// do some stuff
List<String> newList = new (?????);
// do some stuff with newList
return newList;
}
我可以重载ArrayList、LinkedList、Vector等的方法,但我想看看是否可以在不重复一堆代码的情况下完成。
【问题讨论】:
-
为什么需要返回相同的实现?
-
你想要一份这份清单吗?
-
这违反了OOP的原则。实施应该无关紧要。任何其他硬编码为特定类型 List 的地方都可能使用该接口。
-
@Compass 这就是我需要听到的。似乎如果不可能,那一定是有原因的。祝我好运,而我要推回老板类型。
-
如果您需要针对特定目的针对特定实现,我会说专门为此目的创建一个方法会更合适,然后您可以调用通用版本并将其转换为方法中的具体版本。
标签: java list inheritance interface