ClassCastException, когда обе переменные являются плавающими в Android Studio - PullRequest
0 голосов
/ 11 октября 2019

В моем коде 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 также плавающие). Почему я получаю эту ошибку? Я сделал что-то не так?

Спасибо.

1 Ответ

0 голосов
/ 14 октября 2019

Реальная проблема заключалась в том, что FLOAT заставлял приведение getValue к использованию DOUBLE. Покопавшись еще, я получил решение. Я использовал следующий подход:

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

Например:

smoothedValue = Float.valueOf(String.valueOf(dummyArray.get(dummyArray.size()-1)));
...