参见英文答案 >
Type List vs type ArrayList in Java15个
以下是如何创建ArrayList的两种方法:
以下是如何创建ArrayList的两种方法:
List<String/*or other object*/> arrList = new ArrayList();//Imports List,ArrayList ArrayList<String/*or other object*/> arrList = new ArrayList();//Imports just ArrayList
有什么不同?应该使用哪种方法?
解决方法
@H_502_10@ 建议将第一种形式用于类的公共接口(例如,类中属性的声明).这是一个众所周知的建议,你应该为一个接口编程,而不是一个具体的实现(这在 Design Patterns中说明) – 你必须导入的类的数量与代码的质量和良好的设计几乎没有关系.第一种形式的优点是,如果需要的话,它将允许您以后轻松交换实现 – 而第二种实现方式与实现类相结合,使您的代码更难以发展并且不那么灵活.
有些情况下,可以声明和使用具体的类(例如,性能稍微提高).但是类的公共接口应尽可能使用接口,这将使未来的更改更容易实现.