为什么有些人会像这样创建数组列表。
List<T> array = new ArrayList<T>
和其他人一样创建这样的数组列表。
ArrayList<T> array = new ArrayList<T>
有区别吗?是否有利于一方的优点或缺点?在github中合并一个分支然后拉动之后,我发现这个问题我注意到在一个Utils类中,一个worker使用了第二个方法,而其他人似乎使用了第一个方法。
答案 0 :(得分:0)
列表是一个界面,数组列表是实现列表的类...
所以基本上是一种与静态/动态结合相关的设计方式。
静态绑定在编译时发生 ,而在运行时发生动态绑定。
private,final和static方法和变量使用静态绑定并由编译器绑定,而虚拟方法在运行时根据运行时对象绑定。
静态绑定使用Type(Java中的Class)信息进行绑定,而Dynamic绑定使用Object来解析绑定。
重载方法使用静态绑定绑定,而重写方法在运行时使用动态绑定绑定。