Module  java.compiler

Interface AnnotationValueVisitor<R,P>

  • 参数类型
    R - 这个访问者的方法的返回类型
    P - 访问者方法的附加参数类型。
    所有已知实现类:
    AbstractAnnotationValueVisitor6AbstractAnnotationValueVisitor7AbstractAnnotationValueVisitor8AbstractAnnotationValueVisitor9SimpleAnnotationValueVisitor6SimpleAnnotationValueVisitor7SimpleAnnotationValueVisitor8SimpleAnnotationValueVisitor9


    public interface AnnotationValueVisitor<R,P>
    注释类型元素的值的访问者,使用访问者设计模式的变体。 与根据类型层次结构的成员的具体类型进行调度的标准访问者不同,该访问者根据存储的数据类型进行调度; 没有明确的子类存储,例如boolean值与int值。 实现此接口的类用于在编译时该值的类型未知时对值进行操作。 当访问者传递给值为accept方法时,将调用适用于该值的visitXyz方法。

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

    警告:可能的方法将添加到此界面以适应未来版本的Java编程语言中添加的新的,当前未知的语言结构。 因此,直接实现此接口的访问者类可能与未来的平台版本不兼容。 为了避免这种源不兼容,我们鼓励访问者实现扩展实现此接口的适当抽象访问类。 然而,API通常应该将此访问接口用作参数,返回类型等的类型,而不是抽象类之一。

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

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

      • visit

        R visit​(AnnotationValue av,
                P p)
        访问注释值。
        参数
        av - 要访问的值
        p - 访客指定的参数
        结果
        访客指定的结果
      • visit

        default R visit​(AnnotationValue av)
        一个方便的方法相当于 visit(av, null)
        实现要求:
        默认实现为 visit(av, null)
        参数
        av - 要访问的值
        结果
        访客指定的结果
      • visitBoolean

        R visitBoolean​(boolean b,
                       P p)
        访问一个注释中的一个 boolean值。
        参数
        b - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitByte

        R visitByte​(byte b,
                    P p)
        访问一个注释中的一个 byte值。
        参数
        b - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitChar

        R visitChar​(char c,
                    P p)
        访问一个注释中的一个 char值。
        参数
        c - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitDouble

        R visitDouble​(double d,
                      P p)
        访问注释中的 double值。
        参数
        d - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitFloat

        R visitFloat​(float f,
                     P p)
        访问一个注释中的一个 float值。
        参数
        f - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitInt

        R visitInt​(int i,
                   P p)
        访问注释中的一个 int值。
        参数
        i - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitLong

        R visitLong​(long i,
                    P p)
        在注释中访问 long值。
        参数
        i - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitShort

        R visitShort​(short s,
                     P p)
        访问一个注释中的一个 short值。
        参数
        s - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitString

        R visitString​(String s,
                      P p)
        访问注释中的字符串值。
        参数
        s - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitType

        R visitType​(TypeMirror t,
                    P p)
        访问注释中的类型值。
        参数
        t - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitEnumConstant

        R visitEnumConstant​(VariableElement c,
                            P p)
        访问注释中的 枚举值。
        参数
        c - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitAnnotation

        R visitAnnotation​(AnnotationMirror a,
                          P p)
        访问注释中的注释值。
        参数
        a - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitArray

        R visitArray​(List<? extends AnnotationValue> vals,
                     P p)
        访问注释中的数组值。
        参数
        vals - 正在访问的值
        p - 访客指定的参数
        结果
        访问的结果
      • visitUnknown

        R visitUnknown​(AnnotationValue av,
                       P p)
        访问未知类型的注释值。 如果语言发展,并且可以将新种类的值存储在注释中,则可能会发生这种情况。
        参数
        av - 正在访问的未知值
        p - 访客指定的参数
        结果
        访问的结果
        异常
        UnknownAnnotationValueException - 访问者实现可以可选地抛出该异常