为什么创建集合对象时用List<String> list = new ArrayList<String>()而不是用ArrayList<Object> list = new ArrayList<>()呢?
道理很简单,我们知道List是一个接口,ArrayList是一个类,ArrayList继承了List接口并实现了它,那么ArrayList就有很多List中没有定义的方法,如果我么在编程中使用ArrayList<Object> list = new ArrayList<>(),那么我们获得到的list对象直接获取到了ArrayList所有方法,而使用List<String> list = new ArrayList<String>()只是获取到了List中定义的方法,我们知道,List有多个实现类,如 LinkedList或者Vector等等,如果我们在项目中,使用了前者,那么在后续代码修改中,如果我们想要修改使用LinkedList,那么就会修改大量的代码,而使用了后者,只需要改成List<String> list = new LinkedList<String>(),大大减少了代码的修改量。