我怎样才能从公共空方法中得到字段?

时间:2016-01-31 19:54:53

标签: java inner-classes final

我有方法

public String parseRootElement(InputStream xmlStream) throws SAXException {
    String name;
        try {
        DefaultHandler handler;
            handler = new DefaultHandler() {
                @Override
                public void  startElement(String uri,String localName,String qName,Attributes attributes){
                 name=qName;
                 }
                  };
            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser parser=factory.newSAXParser();
            parser.parse(xmlStream, handler);

            return name;
        } catch (ParserConfigurationException | IOException ex) {
            throw new IllegalStateException("ParserConfigurationException", ex);
        }
    }

如何从 public void startElement()获取 qName ? 由于

name = qName 无效
  

在内部类中访问局部变量输入;需要是   宣布最终

有很多类似的问题,但我仍然是愚蠢的。

1 个答案:

答案 0 :(得分:2)

String name;更改为final String[] name = new String[1];,将name=qName;更改为name[0]=qName;,将return name;更改为return name[0];

创建一个数组,其中存储结果并从中检索结果。通过将结果存储在数组中,我们可以创建" name"变量final,因此编译器很高兴。

相关问题