Messager (Java Platform SE 8 )
Keywords: javax.annotation.processing.Messager interface
Date: 2026-04-17

compact3
javax.annotation.processing

## Interface Messager

-     public interface Messager

  A `Messager` provides the way for an annotation processor to report error messages, warnings, and other notices. Elements, annotations, and annotation values can be passed to provide a location hint for the message. However, such location hints may be unavailable or only approximate.

  Printing a message with an error kind will raise an error.

  Note that the messages "printed" by methods in this interface may or may not appear as textual output to a location like `System.out` or `System.err`. Implementations may choose to present this information in a different fashion, such as messages in a window.

  Since:
    1.6
  See Also:
    `ProcessingEnvironment.getLocale()`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `printMessage(Diagnostic.Kind kind, CharSequence msg)` Prints a message of the specified kind.
    `void` | `printMessage(Diagnostic.Kind kind, CharSequence msg, Element e)` Prints a message of the specified kind at the location of the element.
    `void` | `printMessage(Diagnostic.Kind kind, CharSequence msg, Element e, AnnotationMirror a)` Prints a message of the specified kind at the location of the annotation mirror of the annotated element.
    `void` | `printMessage(Diagnostic.Kind kind, CharSequence msg, Element e, AnnotationMirror a, AnnotationValue v)` Prints a message of the specified kind at the location of the annotation value inside the annotation mirror of the annotated element.

- - ### Method Detail

    - #### printMessage

          void printMessage(Diagnostic.Kind kind,
                            CharSequence msg)

      Prints a message of the specified kind.
      Parameters:
        `kind` - the kind of message
        `msg` - the message, or an empty string if none

    - #### printMessage

          void printMessage(Diagnostic.Kind kind,
                            CharSequence msg,
                            Element e)

      Prints a message of the specified kind at the location of the element.
      Parameters:
        `kind` - the kind of message
        `msg` - the message, or an empty string if none
        `e` - the element to use as a position hint

    - #### printMessage

          void printMessage(Diagnostic.Kind kind,
                            CharSequence msg,
                            Element e,
                            AnnotationMirror a)

      Prints a message of the specified kind at the location of the annotation mirror of the annotated element.
      Parameters:
        `kind` - the kind of message
        `msg` - the message, or an empty string if none
        `e` - the annotated element
        `a` - the annotation to use as a position hint

    - #### printMessage

          void printMessage(Diagnostic.Kind kind,
                            CharSequence msg,
                            Element e,
                            AnnotationMirror a,
                            AnnotationValue v)

      Prints a message of the specified kind at the location of the annotation value inside the annotation mirror of the annotated element.
      Parameters:
        `kind` - the kind of message
        `msg` - the message, or an empty string if none
        `e` - the annotated element
        `a` - the annotation containing the annotation value
        `v` - the annotation value to use as a position hint

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.