首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.ClassCastException: java.util.Arrays$ArrayList不能强制转换为java.util.ArrayList

java.lang.ClassCastException: java.util.Arrays$ArrayList不能强制转换为java.util.ArrayList
EN

Stack Overflow用户
提问于 2015-03-04 18:08:50
回答 4查看 101.3K关注 0票数 76

你能给我解释一下为什么会发生这种情况吗?我该怎么解决呢?

所以我使用的是Oracle-ADF,我使用的是穿梭组件。我使用sos1.getValue();获取选定的值

getValue()方法返回一个对象,我正在尝试将其转换为ArrayList,以便稍后使用。因此,我创建了ArrayList sos1Value

然而,这行代码变得疯狂了:

代码语言:javascript
复制
sos1Value = (ArrayList) Arrays.asList(sos1.getValue());

我一直在找java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList

我尝试过其他方法,比如:sos1Value = (ArrayList) sos1.getValue();

但是我总是遇到同样的问题,我该怎么办?

EN

回答 4

Stack Overflow用户

发布于 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实例,您可以自己创建它:

代码语言:javascript
复制
sos1Value = new ArrayList (Arrays.asList(sos1.getValue()));
票数 9
EN

Stack Overflow用户

发布于 2015-03-04 18:10:57

Arrays.asList()方法返回的ArrayList不是java.util.ArrayList,它是Arrays类中的静态内部类。因此,您不能将其强制转换为java.util.ArrayList

尝试将其转换/分配给List

票数 7
EN

Stack Overflow用户

发布于 2021-10-22 06:23:03

简单的方法(效率不高)是

代码语言:javascript
复制
ArrayList sos2Value = new ArrayList()
sos2Value.addAll(Arrays.asList(sos1.getValue()))

sos2Value是java.util.ArrayList。

Arrays.asList(sos1.getValue())为java.util.Arrays$ArrayList

但我不清楚你想做什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28851652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档