在ArrayList之前声明List

时间:2014-03-17 01:17:26

标签: java arraylist

在此声明中List<String> MyList = new ArrayList<String>();

为什么将Mylist声明为String类型的List。只是为了使MyList成为ArrayList类型的新实例String?

似乎没必要。

3 个答案:

答案 0 :(得分:4)

用约书亚布洛赫的Effective Java的第52项来解释,使用界面而不是类使得周围的代码更加灵活。因此,如果您想将myList更改为类似Vector的内容,则根本不需要更改周围的代码。布洛赫接着说,有些时候,例如对java的重大更新,当其他类型的列表更新有效或新的列表完全添加时。

答案 1 :(得分:1)

MyList声明为List<String>类型可确保您不会使用仅适用于ArrayList<String>的方法。这样,您可以在将来更改声明的右侧。

答案 2 :(得分:1)

List只是一个接口,而不是一个实现。有许多不同类型的列表,例如ArrayListLinkedList

因此,如果您声明MyList List<String>它可能是任何类型的List,正如@espertus所说,您可以更改列表MyList的类型未来不必改变它的宣言。