Module java.compiler

Interface ModuleElement.DirectiveVisitor<R,P>

类型参数:
R - 此访问者方法的返回类型。对于不需要返回结果的访问者,请使用Void
P - 此访问者方法的附加参数的类型。对于不需要附加参数的访问者,请使用Void
封闭接口:
ModuleElement

public static interface ModuleElement.DirectiveVisitor<R,P>
模块指令的访问者,采用访问者设计模式。实现此接口的类用于在编译时未知指令种类时操作指令。当将访问者传递给指令的accept方法时,将调用适用于该指令的visitXyz方法。

实现此接口的类可能会或可能不会在附加参数pnull时抛出NullPointerException;有关详细信息,请参阅实现类的文档。

警告: 可能会向此接口添加方法,以适应将来版本的Java编程语言中添加的新的、当前未知的语言结构。用默认方法以源代码兼容的方式添加用于适应新语言结构的方法。

自 JDK 版本:
9
  • Method Details

    • visit

      default R visit(ModuleElement.Directive d)
      访问任何指令,就好像将自身传递给该指令的accept方法,并为附加参数传递null
      实现要求:
      默认实现为d.accept(v, null)
      参数:
      d - 要访问的指令
      返回:
      访问者指定的结果
    • visit

      default R visit(ModuleElement.Directive d, P p)
      访问任何指令,就好像将自身传递给该指令的accept方法。
      实现要求:
      默认实现为d.accept(v, p)
      参数:
      d - 要访问的指令
      p - 访问者指定的参数
      返回:
      访问者指定的结果
    • visitRequires

      R visitRequires(ModuleElement.RequiresDirective d, P p)
      访问一个requires指令。
      参数:
      d - 要访问的指令
      p - 访问者指定的参数
      返回:
      访问者指定的结果
    • visitExports

      R visitExports(ModuleElement.ExportsDirective d, P p)
      访问一个exports指令。
      参数:
      d - 要访问的指令
      p - 访问者指定的参数
      返回:
      访问者指定的结果
    • visitOpens

      R visitOpens(ModuleElement.OpensDirective d, P p)
      访问一个opens指令。
      参数:
      d - 要访问的指令
      p - 访问者指定的参数
      返回:
      访问者指定的结果
    • visitUses

      R visitUses(ModuleElement.UsesDirective d, P p)
      访问一个uses指令。
      参数:
      d - 要访问的指令
      p - 访问者指定的参数
      返回:
      访问者指定的结果
    • visitProvides

      R visitProvides(ModuleElement.ProvidesDirective d, P p)
      访问一个provides指令。
      参数:
      d - 要访问的指令
      p - 访问者指定的参数
      返回:
      访问者指定的结果
    • visitUnknown

      default R visitUnknown(ModuleElement.Directive d, P p)
      访问一个未知指令。如果语言演变并添加了新的指令种类,则可能会发生此情况。
      实现要求:
      默认实现会抛出new UnknownDirectiveException(d, p)
      参数:
      d - 要访问的指令
      p - 访问者指定的参数
      返回:
      访问者指定的结果
      抛出:
      UnknownDirectiveException - 访问者实现可以选择抛出此异常