[英]How can i get field from public void method?
我有方法
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不起作用,因为
在内部类中访问局部变量输入; 需要宣布为最终
有很多类似的问题,但我仍然很愚蠢。
更改String name;
final String[] name = new String[1];
, name=qName;
name[0]=qName;
并return name;
return name[0];
。
这将创建一个数组,在其中存储结果并从中检索结果。 通过将结果存储在数组中,我们可以使“ name”变量成为最终变量,从而使编译器满意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.