在此声明中List<String> MyList = new ArrayList<String>();
为什么将Mylist声明为String类型的List。只是为了使MyList成为ArrayList类型的新实例String?
似乎没必要。
答案 0 :(得分:4)
用约书亚布洛赫的Effective Java的第52项来解释,使用界面而不是类使得周围的代码更加灵活。因此,如果您想将myList
更改为类似Vector的内容,则根本不需要更改周围的代码。布洛赫接着说,有些时候,例如对java的重大更新,当其他类型的列表更新有效或新的列表完全添加时。
答案 1 :(得分:1)
将MyList
声明为List<String>
类型可确保您不会使用仅适用于ArrayList<String>
的方法。这样,您可以在将来更改声明的右侧。
答案 2 :(得分:1)
List
只是一个接口,而不是一个实现。有许多不同类型的列表,例如ArrayList
和LinkedList
。
因此,如果您声明MyList
List<String>
它可能是任何类型的List
,正如@espertus所说,您可以更改列表MyList
的类型未来不必改变它的宣言。