私は、たくさんの古いスタイルのループの代わりにJava 8ストリームを使用しています。結果の束を繰り返し、要約統計量を生成します。IntStreamはいつ実際に閉じられますか? SonarQube S2095はIntStreamに対して偽陽性ですか?
注:たとえば、私は上記を示しカウントを行うための他の方法があることを知っています。私は私の質問を説明するためにそれをやっています。
私はJava 3.9プラグインでSonarQube 5.3を使用しています。その構成では、上記のコード行は、私にイカルールS2095の違反を与える:「リソースは閉じなければならない」これは、AutoCloseable(FileInputStreamなど)が開かれたが決して閉じられなかった場合に見られる結果である。
これは私の質問です:ターミナル操作reduce
はストリームを閉じますか?すべき?それともイカのルールではこれは偽陽性ですか?
'' 'IntStream'''によって' '' onClose(Runnable closeHandler) ''メソッドが '' '' BaseStream''クラスから継承されていることで修正されるでしょう。このハンドラを使用して、ストリームが閉じられているかどうかを調べることができます。 – saka1029
モニターhttps://jira.sonarsource.com/browse/SONARJAVA-1478 – PaoloC