У меня есть json строка, которая представляется собой массив
["829390","831690","831700","831510","844310","850950"]
Используя библиотеку json simple, я получил JSONArray, после чего, используя stream, попытался получить List<String>
, но IDEA подчеркнула мой код, жалуясь на некорректность типов (Required: List<String>
Found: Object
)
String jsonStr = "[\"829390\",\"831690\",\"831700\",\"831510\",\"844310\",\"850950\"]";
JSONArray jsonArray = (JSONArray) JSONValue.parseWithException(jsonStr);
List<String> ads = jsonArray.stream().map(Object::toString).collect(Collectors.toList());
С чем связано данное поведение?
Проблема в том, что JSONArray
расширяет "сырой" (raw type) ArrayList
. Поэтому он наследует "сырой" метод stream()
, который возвращает "сырой" Stream
. Типы нестатических методов "сырых" типов "стираются" (erasure), поэтому collect(..)
возвращает Object
.
Можно вернуть обобщенные типы, явно приведя результат stream()
:
List<String> ads = ((Stream<?>)jsonArray.stream()).map(Object::toString).collect( Collectors.toList() );
может так будет работать?
String jsonStr = "[\"829390\",\"831690\",\"831700\",\"831510\",\"844310\",\"850950\"]";
JSONArray jsonArray = null;
try {
jsonArray = (JSONArray) JSONValue.parseWithException(jsonStr);
List<String> ads = (List<String>) jsonArray.stream().map(Object::toString).collect(Collectors.toList());
for (String s:ads) {
System.out.println(s);
}
} catch (ParseException e) {
e.printStackTrace();
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Средствами opencv я разбил видео на изображения(png), а теперь хочу собрать обратно(включая аудиоряд), но не знаю как
Подскажите как узнать код языка в ISO3, и где собственно найти весь список языковМне необходимо это для того, чтобы пользователь сам выбирал...
Как получить список всех папок которые содержат аудио файлы?