Я пытаюсь использовать функцию фильтрации потокового API с библиотеками Vert.x JsonArray и JsonObject. Моя IDE (IntelliJ) не жалуется на приведенный ниже код, но когда я запускаю код, я получаю исключение.
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
public JsonArray getNewItems(int group, int section) {
JsonArray itemInfo = new itemsManager().getItems();
JsonArray newItems = (JsonArray) itemInfo.stream().filter(i -> {
return ((JsonObject) i).getInteger("group").equals(group) &&
((JsonObject) i).getInteger("section").equals(section);
}).collect(Collectors.toList());
return newItems;
}
--------
java.lang.ClassCastException: java.util.ArrayList cannot be cast to io.vertx.core.json.JsonArray
Если я изменю приведенный выше код на
List<Object> newItems = rowFacings.stream()...
тогда мой код работает нормально, но это создает новый набор проблем.
Как я могу отфильтровать массив JSON объектов JSON в новый массив JSON?
РЕДАКТИРОВАТЬ
Это может быть связано с библиотекой, поскольку я использую пакет Vert.x io.vertx.core.json. Я немного протестирую (org.JSON, com.google.gson, и т. д.) В духе поиска знаний и немного обновлю этот пост с любыми результатами.
где вы изначально декларируете newItems и как?
@scigs Это была ошибка в моем коде. Обновлено.




как это дубликат вышеупомянутого поста? @nullpointer