你能给我解释一下为什么会发生这种情况吗?我该怎么解决呢?
所以我使用的是Oracle-ADF,我使用的是穿梭组件。我使用sos1.getValue();获取选定的值
getValue()方法返回一个对象,我正在尝试将其转换为ArrayList,以便稍后使用。因此,我创建了ArrayList sos1Value
然而,这行代码变得疯狂了:
sos1Value = (ArrayList) Arrays.asList(sos1.getValue());我一直在找java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
我尝试过其他方法,比如:sos1Value = (ArrayList) sos1.getValue();
但是我总是遇到同样的问题,我该怎么办?
发布于 2015-03-04 18:10:28
Arrays.asList(sos1.getValue());生成一个非java.util.ArrayList的列表实现(java.util.Arrays$ArrayList)的实例。因此,您不能将其转换为java.util.ArrayList。
如果将sos1Value的类型更改为List,则不需要此强制转换。
如果您必须拥有java.util.ArrayList实例,您可以自己创建它:
sos1Value = new ArrayList (Arrays.asList(sos1.getValue()));发布于 2015-03-04 18:10:57
Arrays.asList()方法返回的ArrayList不是java.util.ArrayList,它是Arrays类中的静态内部类。因此,您不能将其强制转换为java.util.ArrayList。
尝试将其转换/分配给List。
发布于 2021-10-22 06:23:03
简单的方法(效率不高)是
ArrayList sos2Value = new ArrayList()
sos2Value.addAll(Arrays.asList(sos1.getValue()))sos2Value是java.util.ArrayList。
Arrays.asList(sos1.getValue())为java.util.Arrays$ArrayList
但我不清楚你想做什么。
https://stackoverflow.com/questions/28851652
复制相似问题