我对 XMLTool Java 库有疑问。让我们考虑以下代码:
private void parse() {
List<String> list = new ArrayList<String>();
doc.gotoChild("Body")
.gotoChild("ExternalListOfCodes")
.forEachChild(new CallBack() {
public void execute(XMLTag doc) {
if (doc.getCurrentTagName().equalsIgnoreCase("UnitOfMeasure")){
//Here's the problem!
list.add(
doc.gotoChild("UnitOfMeasureCode").getInnerText()
);
}
}
}
}
有一个循环forEachChild
,我想要实现的是将标签内容添加到列表中。当然,这是不可能的,因为变量 list
在那里不可见。
有什么解决办法吗?感谢您的帮助!
最佳答案
它是可见的,你只需要让它final
:
final List<String> list = new ArrayList<String>();
更一般地说,匿名类(如您的CallBack
)只能访问类外部的局部变量,前提是这些变量被声明为final
。
关于java - 匿名类方法中的变量可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4344579/