Java 当两个变量都在android studio中浮动时,ClassCastException

Java 当两个变量都在android studio中浮动时,ClassCastException,java,android-studio,classcastexception,Java,Android Studio,Classcastexception,我的代码有一个ArrayList定义为: float smoothedValue; ArrayList dummyArray=new ArrayList() 一个float变量定义为: float smoothedValue; 代码执行如下: if(x==1 && dummyArray.size()>1) //x is an int { smoothedValue = dummyArray.get(dummyArray.size()-1); //Error her

我的代码有一个
ArrayList
定义为:

float smoothedValue;
ArrayList 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)));

这适用于我
ArrayList dummyArray=new ArrayList();dummyArray.add(1.0f);float fv=dummyArray.get(0);系统输出打印项次(fv)能否提供显示此错误的完整示例?请阅读。@ScaryWombat我的变量没有一个是双精度的,我怎么会收到那个错误消息呢?