Как правильно создать Iterable<? extends SuperClass>
из Iterator<SubClass>
?
Скажем так, у меня есть Iterator<String>
, и я хочу использовать метод, который принимает Iterable<? extends CharSequence>
. Это, конечно, невозможно:
private String foo(Deque<String> words) {
Iterator<String> iterator = words.descendingIterator();
return String.join(" ", () -> iterator);
}
Единственный способ найти компиляцию был с
private String foo(Deque<String> words) {
Iterator<? extends CharSequence> iterator = words.descendingIterator();
return String.join(" ", () -> (Iterator<CharSequence>) iterator);
}
Но я получаю предупреждение Unchecked . Есть ли способ сделать это чистым способом?