Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Не получается конвертировать Integer в String

#java #строки #конвертация


Есть класс для работы с параметрами сетевых запросов

public class NeboParameters extends LinkedHashMap implements Serializable {

public NeboParameters() {
    super();
}

public NeboParameters(Map fromMap) {
    super(fromMap);
}

public static NeboParameters from(Object... params) {
    if (params.length % 2 != 0) {
        throw new IllegalStateException("Params must be paired");
    }
    LinkedHashMap result = new LinkedHashMap<>(params.length / 2);
    for (int i = 0; i + 1 < params.length; i += 2) {
        result.put((String) params[i], (String) params[i + 1]);
    }
    return new NeboParameters(result);
}
}


Все значения должны конвертироваться в String. 

Вот пример

NeboParameters params = NeboParameters.from(NeboConst.USER_ID, 3484192, NeboConst.MESSAGE,
"Тест2");


Значение 3484192 не конвертируется в String

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

    


Ответы

Ответ 1



Чтобы привести объект к строке, используйте метод String.valueOf: Object[] params = { 3484192, true }; for (Object obj : params) { System.out.println(String.valueOf(obj)); } Или, если уверены в том, что объекты не равны null, напрямую метод toString: Object[] params = { 3484192, true }; for (Object obj : params) { System.out.println(obj.toString()); }

Комментариев нет:

Отправить комментарий