Как я могу печатать для коллекции<? супер некоторые>?
У меня есть метод, похожий на этот.
public void some(..., Collection<? super Some> collection) {
// WOOT, PECS!!!
final Stream<Some> stream = getStream();
stream.collect(toCollection(() -> collection));
}
И как я могу сделать так, чтобы этот метод возвращал данный экземпляр коллекции безопасно?
Я попробовал это.
public <T extends Collection<? super Some>> T some(..., T collection) {
final Stream<Some> stream = getStream();
stream.collect(toCollection(() -> collection)); // error.
return collection; // this is what I want to do
}
1 ответ
Я нашел, что должен сделать это
public <T extends Collection<Some>> T some(..., T collection) {
final Stream<Some> stream = getStream();
stream.collect(toCollection(() -> collection));
return collection; // this is what I want to do
}
Так что я могу сделать это
List<Some> list = some(..., new ArrayList<>();
Я хотел бы объяснить.