我需要读一个属性文件.我正在使用BufferedReader和FileReader来实现此目的.我在try部分之前将BufferedReader初始化为null并在try部分初始化.最后,我正在关闭读者.此时,我收到标题中提到的错误.
完整的代码如下
public void getPageTitleProperties() throws IOException { BufferedReader br = null; String lhs, rhs; try { br = new BufferedReader(new FileReader("res" + File.separator + "pagetitle.properties")); String line; while ((line = br.readLine()) != null) { String [] keyvalue = line.split("="); lhs = keyvalue[0]; rhs = keyvalue[1]; expectedTitles.put(lhs, rhs); } } catch (RuntimeException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } finally { br.close(); } System.out.println("Expected URLs and Titles"); for (String url : expectedTitles.keySet()) { System.out.println(url + ":" + expectedTitles.get(url)); } }
错误的细节是 -
我怎样才能摆脱这个错误?我已经尝试将BR初始化为非null,在try块中初始化它(由于无法在finally块中解析变量,因此无效):).在一些类似的帖子中,人们提到这可能是假阴性.我还引用了 - http://findbugs.sourceforge.net/bugDescriptions.html#NP_GUARANTEED_DEREF,但无法想出如何摆脱这个bug.