Когда вы создаете MappingIterator
объект, вы на самом деле еще ничего не десериализируете. Вам нужно перебрать все строки или использовать метод its.readAll()
для запуска процесса десериализации.
Когда вы используете метод readValue
, вы ожидаете ровно один объект. Если это не доступно, исключение выдается, чтобы сообщить Вам, что это не возможно. Он не может просто вернуть null
, потому что это будет тихий сбой и может вызвать NPE
позже.
С MappingIterator
это другой сценарий, потому что вам нужно перебрать его, а API
позволяетвам проверить следующий элемент. Итак, ясно, что если нет элементов, мы можем просто прекратить итерации.
Так что, на мой взгляд, это не ошибка.