Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有任何循环的List.addAll方法上的Java ConcurrentModificationException_Java_List - Fatal编程技术网

没有任何循环的List.addAll方法上的Java ConcurrentModificationException

没有任何循环的List.addAll方法上的Java ConcurrentModificationException,java,list,Java,List,我在下面的代码段中引发了ConcurrentModificationException,根据我所读到的导致此错误的原因(修改您有一个打开的迭代器的内容),这是没有意义的: List kibanaFields=Arrays.asList(KibanaRow.class.getSuperclass().getDeclaredFields()); addAll(Arrays.asList(KibanaRow.class.getDeclaredFields()); 第二行,就是它发生的地方。 我不明白

我在下面的代码段中引发了ConcurrentModificationException,根据我所读到的导致此错误的原因(修改您有一个打开的迭代器的内容),这是没有意义的:

List kibanaFields=Arrays.asList(KibanaRow.class.getSuperclass().getDeclaredFields());
addAll(Arrays.asList(KibanaRow.class.getDeclaredFields());
第二行,就是它发生的地方。 我不明白这件事。。即使第一行内部实现了某种迭代器,在返回第二个方法运行时也应该关闭它


这里的目的是获取字段名列表,然后在每个
KibanaRow
字段上添加
@JsonProperty
注释的值。

我不理解CME的具体原因。如果你给我们看stacktrace我们也许能解决

但是,您尝试执行的操作无论如何都不会起作用:

List<Field> kibanaFields 
        Arrays.asList(KibanaRow.class.getSuperclass().getDeclaredFields());
如果
KibanaRow.class.getDeclaredFields()
返回一个非空数组,那么这将尝试向
kibanaFields
添加更多元素。不可能。随后应出现例外情况

我发现的问题的一个解决方案是将
asList
结果的内容复制到一个新的
ArrayList
;e、 g

List<Field> kibanaFields = new ArrayList<>(Arrays.asList(....));
List kibanaFields=newarraylist(Arrays.asList(..);

谢谢,这解决了CME问题,显然避免了另一个错误。也许CME是添加到固定阵列的例外?我不知道。。
kibanaFields.addAll(Arrays.asList(KibanaRow.class.getDeclaredFields()));
List<Field> kibanaFields = new ArrayList<>(Arrays.asList(....));