事情是这样的数组
我在后台存放一些示例数据,每一个map都手动赋值再存到mapList里,随着数据量的增多,代码中出现了一串一串的超类似代码。map.put()因为要放不一样的值也就算了,map初始化和mapList.add()真是难以容忍。指针
因而想到用map数组的方法。编译器
Map<String,String>[] mapArray=new Map[n]; 编译
mapArray[i].put();后台
这样是能够编译经过的,但是运行时却出现了空指针异常。泛型
缘由是泛型具备类型的不肯定性,而数组的定义必须肯定其元素类型,因此泛型数组在初始化时会面临类型擦除的问题。List
也就是对于编译器来讲HashMap<Integer,Integer>和HashMap<String,String>是相同的。初始化并无完成,因此出现了空指针异常。map
那该如何办嘞?上网去查,原来你们都知道缘由啊,可是没有人给出解决办法,什么不支持、没法编译、没法转化,什么这样不对要用mapList。哼!方法
还好我灵机一动,没有初始化,那就给它初始化被。数据
for(int i = 0; i < n; i++){
mapArray[i] = new HashMap<String,String>();
}
这样再进行赋值就没有问题了。
若是你仍须要List类型
List<Map<String,String>> mapList= Arrays.asList(mapArray);
我之因此没有还原成List方法而是仍然找Array的方法,由于既然编译经过了,那它必定能够变成可行方法,关键要看你的强大逻辑和神秘直觉。