ObjectMapper.readValues(...) Джексона возвращает класс MappingIterator, который реализует как Closeable, так и Iterator:
Код: Выделить всё
public class MappingIterator implements Iterator, Closeable {...}
Я использую его для десериализации JSONL, но я не хочу, чтобы мой метод был привязан к конкретным объектам Джексона, поэтому вместо этого я создал CloseableIterator, который реализует оба:
Код: Выделить всё
public interface CloseableIterator extends Iterator, Closeable {...}
Я хочу, чтобы мой метод возвращал CloseableIterator вместо прямого использования MappingIterator:
Код: Выделить всё
CloseableIterator readFooBars(...) {
return objectMapper.readValues(...);
}
Однако компилятор не позволяет мне скомпилировать его без добавления непроверяемого приведения типов, что кажется ненужным.
Есть ли способ преобразовать объект в интерфейс, который, в свою очередь, расширяет несколько интерфейсов?
Подробнее здесь:
https://stackoverflow.com/questions/792 ... interfaces