[英]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.