嘿,基本上我想要做的是获取一些ArrayList<HashMap<String, String>>
menuItems并将其传递给我的onPostExecute
方法,所以为了做到这一点,我打算创建一个menuItems数组并将其传递给.. 。这是我用来做这个的代码
ArrayList<HashMap<String, String>>[] arr = new ArrayList<HashMap<String,String>>[6];
arr[0] = menuItems;
arr[1] = menuItems2;
arr[2] = menuItems3;
arr[3] = menuItems4;
arr[4] = menuItems5;
arr[5] = menuItems6;
然后我回来了。但是我收到了这个错误
Cannot create a generic array of ArrayList<HashMap<String,String>>
这似乎表明Java在编译器级别实现其泛型,这是我在研究堆栈溢出和Web上的问题后能够找到的所有内容。所以我的问题就是如何做到这一点?要么是一种解决我的错误的方法,要么是另一种返回menuItems的方法。
答案 0 :(得分:2)
你cannot create arrays of parameterized types。
您最好的选择是使用List而不是数组。同时在创建参考文献时,您应该prefer interface over actual class。
List<List<Map<String, String>>> list = new ArrayList<List<Map<String, String>>>;
list.add(menuItems1);
list.add(menuItems2);
list.add(menuItems3);
list.add(menuItems4);
list.add(menuItems5);
list.add(menuItems6);
答案 1 :(得分:0)
它不可能ArrayList本身是Collection Framework refer文档的动态数组部分。 从代码中删除[]括号。 来自WikiPedia的报价。
在计算机科学中,动态数组,可增长数组,可调整大小的数组, 动态表,可变数组或数组列表是随机访问, 可变大小的列表数据结构,允许添加元素或 除去。它提供许多现代标准库 主流编程语言。
refer this也是初学者非常好的资源。 如果你想要固定大小的ArrayList answer。
例如我的建议。 的修改
ArrayList<Hashmap<String,String>> list =new ArrayList<Hashmap<String,String>>()
Hashmap<String,String> map=new Hasmap<String,String>()
map.put("KEY","VALUE");
list.add(map);
请记住,每次必须为hashmap创建新实例时。因为它使用唯一值
答案 2 :(得分:0)
ArrayList<HashMap<String, String>>[] arr = new ArrayList<HashMap<String,String>>[6];
您正在尝试创建array
ArrayList
。这是故意还是......?
默认情况下,ArrayLists是可扩展的。请尝试删除[]
和[6]
然后,使用add()
方法添加所需的数据:)