Предположим, что я использую плохо документированную стороннюю библиотеку, для которой нет исходного кода. Один из методов библиотеки принимает InputStream
для загрузки различных данных.Ручное закрытие внутри try-with-resource
Из-за отсутствия документации неясно, закрывает ли этот метод поток после его завершения, поэтому одним из возможных решений может быть обернуть вызов в try-with-resource, просто чтобы быть включенным безопасная сторона.
К сожалению, спецификация Java делает (насколько я могу судить) отсутствие упоминания о том, что произойдет, если ресурс закрыт вручную внутри try-with-resource. Кто-нибудь знает?
Вы можете просто попробовать, не так ли? – Fildor
@Fildor Обычно это плохая практика просто «попытаться угадать» вместо того, чтобы смотреть на документацию (даже если там, документ плох). Просто потому, что функция возвращает '1' для' -1', а '1' не делает ее функцией' abs'. – Xenos
@ Xenos Я не имел в виду «попытаться угадать». Я имел в виду «черный ящик». Если документация оставляет желать лучшего, вы хотите узнать как можно больше об этой функции. Поэтому вы будете снимать на нем сложный набор тестов (по крайней мере, я бы). Тогда я бы закодировал что-то стабильное, даже если подозрительная функция ведет себя смешно. И я никогда не говорил «вместо того, чтобы смотреть в документы». BTW: У меня были * встречи, где документы были * неправильными *. – Fildor