我的代码的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
的元素也是浮点数)。为什么会出现此错误?我做错什么了吗?
谢谢。
真正的问题是FLOAT强制将getValue强制转换为使用DOUBLE。经过更多的挖掘,我得到了解决方案。我使用了以下方法:
Float.valueOf(String.valueOf(double_variable));
例如:
smoothedValue = Float.valueOf(String.valueOf(dummyArray.get(dummyArray.size()-1)));