Страницы

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

четверг, 4 апреля 2019 г.

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

Есть класс для работы с параметрами сетевых запросов
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


Ответ

Чтобы привести объект к строке, используйте метод 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()); }

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

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