#java #строки #конвертация
Есть класс для работы с параметрами сетевых запросов public class NeboParameters extends LinkedHashMapimplements 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()); }
Комментариев нет:
Отправить комментарий