簡體   English   中英

匿名類方法中的變量可見性

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM