Ошибка при попытке приведения типа

124
24 января 2018, 15:12

Здравствуйте, подскажите пожалуйста. При передаче в данный код значений определенного типа int, long и т.д.:

public static boolean convertToBoolean(Object value) {
    boolean returnValue = false;
    if (value == null) {
        return false;
    }
    if (value instanceof Boolean) {
        return (boolean) value;
    }
    String objvalue = (String) value;
    for(int i = 0; i < TrueArray.length; i++) {
        if(objvalue.equalsIgnoreCase(TrueArray[i])) {
            returnValue = true;
            break;
        }
    }
    return returnValue;
}

Появляется ошибка, к примеру:

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String

В чем может быть проблема?

Answer 1

Чтобы получить из объекта строку, вызывайте метод toString(), а не пытайтесь просто привести тип:

String objvalue = value.toString();
READ ALSO
Причина возниконовения Runtime Error?

Причина возниконовения Runtime Error?

Доброго времени сутокНеобходимо решить задачку на одном ресурсе

161
Распарсить значения в JavaScript

Распарсить значения в JavaScript

Контроллер передает данные:

147
Заменить метод .live на .on

Заменить метод .live на .on

Как правильно заменить устаревший методlive в строке:

174
Верно ли понимается значение строки jQuery

Верно ли понимается значение строки jQuery

Из блока с id="box", расположенным по адресу indexphp?route=module/cart будет вытащено все содержимое, и все это будет загружено в блок с id="cart"

212