模块  java.compiler
软件包  javax.lang.model.type

Interface TypeVisitor<R,​P>

  • 参数类型
    R - 此访问者方法的返回类型。 对于不需要返回结果的访问者,请使用Void
    P - 此访问者方法的附加参数的类型。 对于不需要其他参数的访问者,请使用Void
    所有已知实现类:
    AbstractTypeVisitor6AbstractTypeVisitor7AbstractTypeVisitor8AbstractTypeVisitor9SimpleTypeVisitor6SimpleTypeVisitor7SimpleTypeVisitor8SimpleTypeVisitor9TypeKindVisitor6TypeKindVisitor7TypeKindVisitor8TypeKindVisitor9

    public interface TypeVisitor<R,​P>
    访客设计模式的类型的访客。 当编译时类型未知时,实现此接口的类用于对类型进行操作。 当访问者传递给类型的accept方法时,将调用最适用于该类型的visitXyz方法。

    实现此界面的类可以或可以不抛出NullPointerException如果附加参数pnull ; 有关详细信息,请参阅实现类的文档。

    警告:可能会将方法添加到此接口,以适应未来版本的Java™编程语言中添加的新的,当前未知的语言结构。 因此,直接实现此接口的访问者类可能与该平台的未来版本不兼容。 为避免此源不兼容,建议访问者实现扩展实现此接口的相应抽象访问者类。 但是,API通常应使用此访问者接口作为参数类型,返回类型等,而不是其中一个抽象类。

    请注意,如果将新语言构造添加为默认方法,则可以以源兼容的方式添加适应新语言构造的方法 但是,默认方法仅适用于Java SE 8及更高版本,并且Java SE 8中捆绑的javax.lang.model.*软件包也需要在Java SE 7上运行。因此,在扩展javax.lang.model.*以涵盖Java SE 8语言时, 使用默认方法特征。 但是,默认方法用于javax.lang.model.*软件包的后续修订版,这些软件包仅需要在Java SE 8及更高版本平台上运行。

    从以下版本开始:
    1.6
    • 方法详细信息

      • visit

        R visit​(TypeMirror t,
                P p)
        访问类型。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
      • visit

        default R visit​(TypeMirror t)
        一种方便的方法,相当于 visit(t, null)
        实现要求:
        默认实现是 visit(t, null)
        参数
        t - 要访问的元素
        结果
        访客指定的结果
      • visitPrimitive

        R visitPrimitive​(PrimitiveType t,
                         P p)
        访问基本类型。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
      • visitNull

        R visitNull​(NullType t,
                    P p)
        访问null类型。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
      • visitArray

        R visitArray​(ArrayType t,
                     P p)
        访问数组类型。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
      • visitDeclared

        R visitDeclared​(DeclaredType t,
                        P p)
        访问声明的类型。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
      • visitError

        R visitError​(ErrorType t,
                     P p)
        访问错误类型。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
      • visitTypeVariable

        R visitTypeVariable​(TypeVariable t,
                            P p)
        访问类型变量。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
      • visitWildcard

        R visitWildcard​(WildcardType t,
                        P p)
        访问通配符类型。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
      • visitExecutable

        R visitExecutable​(ExecutableType t,
                          P p)
        访问可执行类型。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
      • visitNoType

        R visitNoType​(NoType t,
                      P p)
        访问NoType实例。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
      • visitUnknown

        R visitUnknown​(TypeMirror t,
                       P p)
        访问未知类型。 如果语言发展并且将新类型添加到TypeMirror层次结构中,则会发生这种情况。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
        异常
        UnknownTypeException - 访问者实现可以选择抛出此异常
      • visitUnion

        R visitUnion​(UnionType t,
                     P p)
        访问联合类型。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
        从以下版本开始:
        1.7
      • visitIntersection

        R visitIntersection​(IntersectionType t,
                            P p)
        访问交叉点类型。
        参数
        t - 要访问的类型
        p - 访问者指定的参数
        结果
        访客指定的结果
        从以下版本开始:
        1.8