java使用List lists = new ArrayList()出错

时间:2021-07-20 04:19:02

在程序中写List lists = new ArrayList(),提示出错。


错误如下:

Type mismatch: cannot convert from ArrayList to List 。


原因:

因为AyyayList存储时采用了java泛型这个概念,所以表示ArrayList初始化的时候最好加上你存储的数据类型。


解决方法:

在ArrayList中存储String类型,那么初始化的时候应该写成ArrayList<String> arraylist = new ArrayList<String>(); 不过一般建议采用接口和子类继承方式初始化,即List<String> list = new ArrayList<String>();


为什么要用 List list = new ArrayList() ,而不用 ArrayList alist = new ArrayList()呢? 
问题就在于List有多个实现类,现在你用的是ArrayList,也许哪一天你需要换成其它的实现类,如 LinkedList或者Vector等等,这时你只要改变这一行就行了:List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。 
假设你开始用 ArrayList alist = new ArrayList(), 这下你有的改了,特别是如果你使用了ArrayList特有的方法和属性。