android studio 中两个变量都是浮点数时出现 ClassCastException
ClassCastException when both the variables are floats in android studio
我的代码有一个 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
变量在同一个方法中定义(class中的私有方法)并且都是浮点数(ArrayList
的元素也是浮点数)。为什么会出现此错误?我做错了什么吗?
谢谢。
真正的问题是 FLOAT 强制 getValue 转换使用 DOUBLE。
挖掘更多之后,我得到了解决方案。我使用了以下方法:
Float.valueOf(String.valueOf(double_variable));
例如:
smoothedValue = Float.valueOf(String.valueOf(dummyArray.get(dummyArray.size()-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
变量在同一个方法中定义(class中的私有方法)并且都是浮点数(ArrayList
的元素也是浮点数)。为什么会出现此错误?我做错了什么吗?
谢谢。
真正的问题是 FLOAT 强制 getValue 转换使用 DOUBLE。 挖掘更多之后,我得到了解决方案。我使用了以下方法:
Float.valueOf(String.valueOf(double_variable));
例如:
smoothedValue = Float.valueOf(String.valueOf(dummyArray.get(dummyArray.size()-1)));