ClassCastException,当两个变量都在android studio中都为float时

问题描述 投票:0回答:1

我的代码的ArrayList定义为:

ArrayList<Float> dummyArray = new ArrayList();

float变量定义为:

float smoothedValue;

代码执行如下:

 if(x==1  && dummyArray.size()>1) //x is an int
{
smoothedValue =  dummyArray.get(dummyArray.size()-1); //Error here
}

我收到以下错误:

java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Float

变量在同一方法(类中的私有方法)中定义,并且都是浮点数(ArrayList的元素也是浮点数)。为什么会出现此错误?我做错什么了吗?

谢谢。

java android-studio classcastexception
1个回答
0
投票

真正的问题是FLOAT强制将getValue强制转换为使用DOUBLE。经过更多的挖掘,我得到了解决方案。我使用了以下方法:

Float.valueOf(String.valueOf(double_variable));

例如:

smoothedValue = Float.valueOf(String.valueOf(dummyArray.get(dummyArray.size()-1)));
© www.soinside.com 2019 - 2024. All rights reserved.