【问题标题】:Sonar wants to close the Stream [duplicate]声纳想要关闭 Stream [重复]
【发布时间】: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);

标签: java java-8 sonarqube


【解决方案1】:

这是一个误报,已经修复,很快将与 SonarQube Java 3.14 一起发布。

如需进一步参考,请查看SONARJAVA-1478

【讨论】:

  • 呃?链接没有死。
  • 啊……我公司的网络阻止我访问该链接。对于浪费您的时间,我深表歉意。
猜你喜欢
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
  • 2021-01-09
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多