【发布时间】:2016-08-24 19:08:26
【问题描述】:
我有下一个代码:
private Stream<Field> getStreamWithAccessibleFields(final Object object) {
return Arrays.stream(object.getClass()
.getDeclaredFields()).peek(field -> field.setAccessible(true));
}
Sonar 向我抛出了一个问题:[MINOR] 关闭此“流”。鱿鱼:S2095。 谁能给个建议,我该如何处理这个问题?
【问题讨论】:
-
Sonar 犯了双重错误。首先,有些流可能不需要关闭,其次,对于任何类型的
AutoCloseable,关闭返回给调用者的资源都是错误的... -
不过,为了提高效率,我更喜欢批量操作:
Field[] fields=object.getClass() .getDeclaredFields(); AccessibleObject.setAccessible(fields, true); return Arrays.stream(fields);