这两个声明之间有什么区别?
宣言1:
ArrayList<String> arrayList = new ArrayList<String>();
宣言2:
List<String> arrayList = new ArrayList<String>();
这是通用的,您想在将实现细节返回给客户端时隐藏实现细节,以后可以将实现从透明地更改ArrayList为LinkedList。
ArrayList
LinkedList
在设计库等的情况下,此机制很有用,这些库可能会在某个时间点更改其实现详细信息,而对客户端的更改最少。
这是您始终需要返回的要求ArrayList。在某些时候,如果您想将实现细节更改为LinkedList,也应在客户端进行更改以LinkedList代替ArrayList。