У меня есть следующий код:Sonar хочет закрыть поток
private Stream<Field> getStreamWithAccessibleFields(final Object object) {
return Arrays.stream(object.getClass()
.getDeclaredFields()).peek(field -> field.setAccessible(true));
}
Sonar бросает мне вопрос: [НЕБОЛЬШОЙ] Закрыть это «поток». кальмар: S2095. Может кто-нибудь дать совет, как я могу справиться с этой проблемой?
Сонар делает двойную ошибку. Во-первых, есть потоки, которые могут не требовать закрытия, во-вторых, закрытие ресурса, возвращаемого вызывающему, было бы неправильным для любого типа «AutoCloseable» ... – Holger
Тем не менее, я бы предпочел большую операцию для эффективности: 'Поле [] fields = object.getClass() .getDeclaredFields(); AccessibleObject.setAccessible (поля, true); return Arrays.stream (поля); ' – Holger