[英]Some doubts about visibility of the variable inside an inner class declared in a method
[英]Variable visibility inside anonymous class method
我有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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.