【发布时间】:2011-03-23 14:19:03
【问题描述】:
为什么建议这样做:
List<String> myArrayList = new ArrayList<String>
或与 Map 接口和 HashMap 类相同
而不是:
ArrayList<String> myArrayList = new ArrayList<String>
【问题讨论】:
为什么建议这样做:
List<String> myArrayList = new ArrayList<String>
或与 Map 接口和 HashMap 类相同
而不是:
ArrayList<String> myArrayList = new ArrayList<String>
【问题讨论】:
因为myArrayList 变量的使用代码不会绑定到此接口的特定实现。
【讨论】:
第一行(首选)你说你的代码需要一个 List,第二行你说你的代码需要一个 ArrayList。通常,您可以在周围放置变量实例。如果您现在出于某种原因更改 myArrayList 实例,您将不得不更改太多代码。
【讨论】:
你不应该使用:
List<String> myArrayList = new ArrayList<String>
为什么你应该使用 List 而不是 ArrayList 类型(除非你真的需要 List 接口中缺少的 ArrayList 的功能)已经在另一个答案中解释了。
但我认为使用专有名称更为重要。因此,如果您使用 List 作为变量的类型,则名称不应表明它是 ArrayList。如果名称表明使用了变量就更好了。
是的,这很挑剔。但是使用好名字会让同事在一年后更容易理解代码。
【讨论】: