为什么建议这样做:
List<String> myArrayList = new ArrayList<String>
或与Map接口和HashMap类相同
而不是:
ArrayList<String> myArrayList = new ArrayList<String>
答案 0 :(得分:3)
因为myArrayList
变量的消费代码不会绑定到此接口的特定实现。
答案 1 :(得分:1)
使用第一个(首选)行,您的代码需要一个List,第二行您说您的代码需要一个ArrayList。通常,您可以路径变量实例。如果您现在因某种原因更改myArrayList实例,则必须更改太多代码。
答案 2 :(得分:1)
你不应该使用:
List<String> myArrayList = new ArrayList<String>
为什么你应该使用List类型而不是ArrayList(除非你真的需要List接口中缺少的ArrayList的功能)已在另一个答案中解释。
但我认为使用专有名词更为重要。因此,如果您使用List作为变量的类型,则名称不应该告诉它是ArrayList。如果名称表明使用了变量,那就更好了。
是的,这很挑剔。但是,使用好名字可以让你在一年之后和同事们更容易理解代码。