- 类型参数:
-
R
- 此访问者方法的返回类型。对于不需要返回结果的访问者,请使用Void
。 -
P
- 此访问者方法的附加参数的类型。对于不需要附加参数的访问者,请使用Void
。
- 封闭接口:
-
ModuleElement
public static interface ModuleElement.DirectiveVisitor<R,P>
模块指令的访问者,采用访问者设计模式。实现此接口的类用于在编译时未知指令种类时操作指令。当将访问者传递给指令的
accept
方法时,将调用适用于该指令的visitXyz
方法。
实现此接口的类可能会或可能不会在附加参数p
为null
时抛出NullPointerException
;有关详细信息,请参阅实现类的文档。
警告: 可能会向此接口添加方法,以适应将来版本的Java编程语言中添加的新的、当前未知的语言结构。用默认方法以源代码兼容的方式添加用于适应新语言结构的方法。
- 自 JDK 版本:
- 9
-
Method Details
-
visit
访问任何指令,就好像将自身传递给该指令的accept
方法,并为附加参数传递null
。- 实现要求:
-
默认实现为
d.accept(v, null)
。 - 参数:
-
d
- 要访问的指令 - 返回:
- 访问者指定的结果
-
visit
访问任何指令,就好像将自身传递给该指令的accept
方法。- 实现要求:
-
默认实现为
d.accept(v, p)
。 - 参数:
-
d
- 要访问的指令 -
p
- 访问者指定的参数 - 返回:
- 访问者指定的结果
-
visitRequires
访问一个requires
指令。- 参数:
-
d
- 要访问的指令 -
p
- 访问者指定的参数 - 返回:
- 访问者指定的结果
-
visitExports
访问一个exports
指令。- 参数:
-
d
- 要访问的指令 -
p
- 访问者指定的参数 - 返回:
- 访问者指定的结果
-
visitOpens
访问一个opens
指令。- 参数:
-
d
- 要访问的指令 -
p
- 访问者指定的参数 - 返回:
- 访问者指定的结果
-
visitUses
访问一个uses
指令。- 参数:
-
d
- 要访问的指令 -
p
- 访问者指定的参数 - 返回:
- 访问者指定的结果
-
visitProvides
访问一个provides
指令。- 参数:
-
d
- 要访问的指令 -
p
- 访问者指定的参数 - 返回:
- 访问者指定的结果
-
visitUnknown
访问一个未知指令。如果语言演变并添加了新的指令种类,则可能会发生此情况。- 实现要求:
-
默认实现会抛出
new UnknownDirectiveException(d, p)
。 - 参数:
-
d
- 要访问的指令 -
p
- 访问者指定的参数 - 返回:
- 访问者指定的结果
- 抛出:
-
UnknownDirectiveException
- 访问者实现可以选择抛出此异常
-