Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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
BigDecimal与ArrayList、java ClassCastException不兼容_Java_Arraylist_Classcastexception_Bigdecimal - Fatal编程技术网

BigDecimal与ArrayList、java ClassCastException不兼容

BigDecimal与ArrayList、java ClassCastException不兼容,java,arraylist,classcastexception,bigdecimal,Java,Arraylist,Classcastexception,Bigdecimal,我在Eclipse中调试来自不同项目的一些代码,发现即使没有错误符号(只是警告) 现在,我已经试着去做了 ((ArrayList<BigDecimal>)beanResultVO.getResultObject()).add(someCoolVar); ((ArrayList)beanResultVO.getResultObject()).add(someCoolVar); 得到不同的警告: 未选中从对象到ArrayList的强制转换 但同样的例外是,您的问题是beanResul

我在Eclipse中调试来自不同项目的一些代码,发现即使没有错误符号(只是警告)

现在,我已经试着去做了

((ArrayList<BigDecimal>)beanResultVO.getResultObject()).add(someCoolVar);
((ArrayList)beanResultVO.getResultObject()).add(someCoolVar);
得到不同的警告:

未选中从对象到ArrayList的强制转换


但同样的例外是,您的问题是beanResultVO.getResultObject()是一个大整数,而不是ArrayList。因此,当您尝试将其转换为ArrayList时,它会给出以下异常

((ArrayList)beanResultVO.getResultObject())

由于存在错误,代码将永远不会运行

BigDecimal someCoolVar = (BigDecimal)beanResultVO.getResultObject();
就在几行之前

((ArrayList)beanResultVO.getResultObject()).add(someCoolVar);

并且在和
resultObject
之间更改
resultObject
成员的
resultObject
不能同时是
ArrayList
bigdecimic

在Java中,所有转换操作都会被检查。当无法执行强制转换时,将抛出ClassCastException。在你的例子中

beanResultVO.getResultObject()
是BigDecimal的类型。BigDecimal不能强制转换为ArrayList,因为BigDecimal不是ArrayList的超类。 如果需要ArrayList,可以使用

Arrays.asList(beanResultVO.getResultObject())

它返回您想要的类型,即

List<BigDecimal>
列表

一个愚蠢的问题:为什么说它是大整数?
Arrays.asList(beanResultVO.getResultObject())
Collections.singletonList(beanResultVO.getResultObject())
List<BigDecimal>