java连接mysql读取得到的数据集结构太不友好,更没有好的工具能方便地打印出来展示查看。因此我想写个通用的方法读取数据库数据后统一转化成一个ArrayList,而每行数据以一个HaspMap形式存储在ArrayList中,而我在使用方法将数据集按照逐行根据列名取得数据时却总遇到定义报错、警告。如下:本文地址:http://8408.cn/article/865.html,未经许可,不得转载.
ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized
HashMap is a raw type. References to generic type HashMap<K,V> should be parameterized
Multiple markers at this line - Type safety: The expression of type ArrayList needs unchecked conversion to conform to ArrayList<HashMap<String,String>> - ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized
Multiple markers at this line - HashMap is a raw type. References to generic type HashMap<K,V> should be parameterized - Type mismatch: cannot convert from ArrayList<HashMap<String,String>> to ArrayList<HashMap>本文地址:http://8408.cn/article/865.html,未经许可,不得转载.
这些报错有时也能运行成功,有时又不能成功运行,真是烦人啊。折腾了解了一下,终于明白为什么报错了,豁然开朗舒服。ArrayList初始化的时候最好加上你存储的数据类型,而且这里要求的不仅仅是第一层的数据类型。要一直定义到最深层的数据,比如我的ArrayList里面存的是HashMap,而HashMap里存的格式是<String,String>,定义的时候就需要把这些全部写好。每个地方都 按照这样的方式严格填写的话,就不会有喝下了,如下所示:本文地址:http://8408.cn/article/865.html,未经许可,不得转载.
ArrayList<HashMap<String,String>> arr = new ArrayList<HashMap<String,String>>();本文地址:http://8408.cn/article/865.html,未经许可,不得转载.
因为ArrayList存储时采用了java泛型这个概念,如果你想在ArrayList中存储String类型,那么初始化的时候应该写成ArrayList<String> data = new ArrayList<String>(); 一般建议采用接口和子类继承方式初始化,即List<String> temp = new ArrayList<String>();本文地址:http://8408.cn/article/865.html,未经许可,不得转载.
本文地址:http://8408.cn/article/865.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
手机扫码直接打开本页面 |