访客模式Java和全局变量

时间:2012-06-14 03:40:22

标签: java global-variables jsoup visitor-pattern

我正在使用JSoup,我正在进行一些节点遍历。

String myString;
NodeTraversor articleNodeTraversor  = new NodeTraversor(new NodeVisitor() {

            @Override
            public void tail(Node node, int depth) {
                //Do some processing.
                                    myString += "foo";
            }

            @Override
            public void head(Node node, int depth) { 
                //Do some processing.
            }
        });

首先,这种编程叫做什么?访客模式?其次,上述代码仅在myString为全局时有效。如何将我的字符串本地化为仅在其创建的方法中仍然使上述工作?

谢谢!

2 个答案:

答案 0 :(得分:1)

您正在使用匿名类,因此他们只能访问其上下文之外的最终局部变量(假设它在方法中声明)和类的任何变量(静态或非静态)。您也可以在内部类中声明变量,但不允许使用静态非最终变量声明。

答案 1 :(得分:0)

new NodeVisitor() {}被称为Anonymous Inter Class。

您可以将块中的变量视为公共类。