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我的变量没有一个是双精度的,我怎么会收到那个错误消息呢?