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

219
14 сентября 2017, 15:35

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

public class NeboParameters extends LinkedHashMap<String, Object> implements Serializable {
public NeboParameters() {
    super();
}
public NeboParameters(Map<String, Object> fromMap) {
    super(fromMap);
}
public static NeboParameters from(Object... params) {
    if (params.length % 2 != 0) {
        throw new IllegalStateException("Params must be paired");
    }
    LinkedHashMap<String, Object> 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
Answer 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());
}
READ ALSO
Сложная фильтрация в JTable

Сложная фильтрация в JTable

Написал такую фильтрацию(точное совпадение числа):

265
Механизм загрузки изображения с Android в БД - api

Механизм загрузки изображения с Android в БД - api

Подскажите, возможно глупый вопрос но все же ответ на него найти я не могуМне нужно реализовать загрузку изображений на сервер, api свой на Java, взаимодействие...

219