JavaParser访问方法arg参数澄清

JavaParser访问方法arg参数澄清,java,javaparser,Java,Javaparser,有没有人可以澄清一下visit方法的第二个参数arg的用法,如下面的代码所示? 我在网上找不到任何信息 公共类方法打印机{ 公共静态void main(字符串[]args)引发异常{ //为要分析的文件创建输入流 FileInputStream in=newfileinputstream(“test.java”); 编译单元cu; 试一试{ //解析文件 cu=JavaParser.parse(in); }最后{ in.close(); } //访问并打印方法名称 新建MethodVisitor

有没有人可以澄清一下
visit
方法的第二个参数
arg
的用法,如下面的代码所示?

我在网上找不到任何信息

公共类方法打印机{
公共静态void main(字符串[]args)引发异常{
//为要分析的文件创建输入流
FileInputStream in=newfileinputstream(“test.java”);
编译单元cu;
试一试{
//解析文件
cu=JavaParser.parse(in);
}最后{
in.close();
}
//访问并打印方法名称
新建MethodVisitor().visit(cu,null);
}
/**
*用于访问MethodDeclaration节点的简单访问者实现。
*/
私有静态类MethodVisitor扩展了VoidVisitorAdapter{
@凌驾
公共无效访问(方法声明n,对象参数){
//在这里,您可以访问该方法的属性。
//此方法中的所有方法都将调用此方法
//编译单元,包括内部类方法
System.out.println(n.getName());
}
}
}
这很简单

当您对访问者调用
accept
方法时,您可以提供此附加参数,然后将其传递回访问者的
visit
方法。这基本上是一种向访问者传递上下文对象的方法,允许访问者本身保持无状态

例如,考虑一个希望收集访问时所看到的所有方法名称的情况。您可以提供一个

作为参数,并向该集添加方法名称。我想这就是背后的理由。(我个人更喜欢有状态的访客)

顺便说一下,你通常应该打电话

cu.accept(new MethodVisitor(), null);
而不是相反