集合遍历foreach函数进行remove操作和Arrays.asList()对包装类有效对基本类型会出现bug
在上次记录了这个中的bug,今天发现这个Arrays.asList()只对包装类有效对基本类型会出现问题:Arrays.asList()的bug
先看以下代码不错情况:
报错情况
再看Arrays.asList()的原码:
仔细观察可以发现asList接受的参数是一个泛型的变长参数,而基本数据类型是无法泛型化的,这是因为把int类型的数组当参数了,所以转换后的列表就只包含一个int[]元素。
上文报错是因为在for循环中进行romove了不建议在foreach进行这样做因为会抛出异常,这点在java开发手册中有具体的体现: