- 类型参数:
-
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- 访问者实现可以选择抛出此异常
-