' 未在此位置关闭,java"/>

首页 > 解决方案 > 资源泄漏:'' 未在此位置关闭

问题描述

如果我有以下代码:

public XNameSupport implements AutoCloseable {
   private String localName;
   public String getLocalName(){
       return localName;
   }
}
public XElementSupport implements AutoCloseable {
   private XNameSupport name = new XNameSupport("root");
   private List<XElementSupport> child = new ArrayList<XElementSupport>();
   public XNameSupport getName(){
       return name;
   }
   Iterable<XElementSupport> elements(String name) throws Exception {
        List<XElementSupport> elements = new ArrayList<XElementSupport>();
        for (XElementSupport element : child) {
            if (element.getName().localName.equals(name))//Resource leak: '<unassigned Closeable value>' is not closed at this location
                elements.add(element);
        }
        return elements;
    }

element.getName().localName 下;并向我显示以下警告:

资源泄漏:“未分配的可关闭值”永远不会关闭

如果我通过方法getLocalName()访问localName并且警告消失。我在现场收到警告。这是 Eclipse 中的不一致(错误?)还是我错过了这两种场景之间的一些根本区别?

标签: java

解决方案


推荐阅读