У меня есть ситуация, когда я читаю базу данных и возвращаю List<String>, где каждая строка выбирается и добавляется в список в соответствии с некоторыми критериями. Подпись метода:
public List<String> myMethod(String query, int limit)
Второй параметр предоставляет верхнюю границу размера возвращаемого списка (установка limit=-1 приведет к удалению любого ограничения по размеру). Чтобы избежать интенсивного использования этого метода, я написал эквивалентный метод, который возвращает Stream<String> вместо списка. (Примечание. Мне не нужен случайный доступ к возвращенным элементам или любой другой функции, специфичной для списка.)
Однако я немного скептически отношусь к возврату Stream<>, тем более, что метод является общедоступным. Безопасно ли иметь общедоступный метод, возвращающий Stream<> в Java?