当前位置: 首页 > 面试题库 >

java.lang.ClassCastException:java.util.Arrays $ ArrayList无法转换为java.util.ArrayList

司寇瑾瑜
2023-03-14
问题内容

您能解释一下为什么会发生这种情况吗,请问如何解决?

因此,我正在使用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();

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


问题答案:

Arrays.asList返回一个List实现,但不是java.util.ArrayList。它碰巧有一个类名ArrayList,但这是一个嵌套类Arrays-与完全不同的类型java.util.ArrayList

如果你 需要 一个java.util.ArrayList,你可以创建一个副本:

ArrayList<Foo> list = new ArrayList<>(Arrays.asList(sos1.getValue());

要么:

List<Foo> list = new ArrayList<>(Arrays.asList(sos1.getValue()));

(如果您不需要由公开的成员ArrayList)。



 类似资料:
  • 问题内容: 在我的代码的开头,有: 然后,(这里是反转子列表): 有这种方法: 错误消息是: 列表无法转换为ArrayList 为什么? 问题答案: 像这样想,您有一个调用(我使用此名称,因为它是您正在使用的变量的名称)。 您有一个输入类型为的方法。 我们有一个声明为的变量,这意味着我们要说它总是某种(也许,但也许)-甚至。 当您尝试将方法赋予方法时,编译器会停止运行,因为无法确定它是100%an

  • 问题内容: 我有一个Java EE应用程序,并且使用了Hibernate。在域对象中,我将List / ArrayList更改为Set / HashSet,因为最好使用Sets。 但是在我的Dao实现中,我遇到了一个问题: 在这里我得到一个错误: 我应该怎么做才能避免这个错误? 预先感谢您和最诚挚的问候。 问题答案: 将返回结果项的数组列表,如果需要在Set中使用它,可以按照代码所示进行制作

  • 你能解释一下为什么会发生这种情况,我怎样才能解决它吗? 所以我使用的是Oracle ADF和shuttle组件。我使用

  • 问题内容: 我是Java的新手,正在尝试理解为什么第一个代码片段不会导致此异常,而第二个代码片段会导致此异常。由于在两种情况下都将字符串数组传递到Arrays.asList中,所以两个代码片段都不应该产生异常还是不产生异常? 第一个代码段(毫无例外): 第二段(导致上述异常): 如果相关,我正在Eclipse Helios中使用JavaSE 1.6。 问题答案: 对我来说(使用Java 1.6.0

  • 问题内容: 将数组元素复制到其中的最佳方法是什么? 我需要快速执行此操作,所以最快的方法是什么? 问题答案: 利用创建 “(通过写‘到数组中。更改到返回的列表)’由指定数组支持的固定大小的列表。” 或者,解耦两个数据结构: 或更简洁:

  • 问题内容: 我是Java的初学者。我真的需要从数组或返回()。有可能的?我无法将数组插入(构造函数)。 代码如下: 问题答案: 添加以下代码以将arraylist值添加至应该可以工作: