Java 为什么findbugs在流未关闭时不检测?
我有一个用例,我在一个类中创建一个Java 为什么findbugs在流未关闭时不检测?,java,stream,inputstream,findbugs,spotbugs,Java,Stream,Inputstream,Findbugs,Spotbugs,我有一个用例,我在一个类中创建一个InputStream,并将其传递给另一个类。如果我删除关闭流的finally块,它在findbugs中不会被检测到。为什么呢 Class A { public static void methodA(InputStream is) { // Do something. // The stream is NOT closed. } } Class B { public void methodB(Sting filePath) {
InputStream
,并将其传递给另一个类。如果我删除关闭流的finally
块,它在findbugs中不会被检测到。为什么呢
Class A {
public static void methodA(InputStream is) {
// Do something.
// The stream is NOT closed.
}
}
Class B {
public void methodB(Sting filePath) {
FileInputStream fis = new FileInputStream(new File(filePath));
A.methodA(fis);
}
}
理想情况下,findbugs应该已经检测到此用例中的流未关闭。但是,事实并非如此&我很想知道为什么 我认为这是一个bug,因为
FileInputStream#finalize
甚至没有调用FileInputStream#close
。