我正在使用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为全局时有效。如何将我的字符串本地化为仅在其创建的方法中仍然使上述工作?
谢谢!
答案 0 :(得分:1)
您正在使用匿名类,因此他们只能访问其上下文之外的最终局部变量(假设它在方法中声明)和类的任何变量(静态或非静态)。您也可以在内部类中声明变量,但不允许使用静态非最终变量声明。
答案 1 :(得分:0)
块new NodeVisitor() {}
被称为Anonymous Inter Class。
您可以将块中的变量视为公共类。