You are currently viewing A Comprehensive Guide to Java Annotations with Examples

A Comprehensive Guide to Java Annotations with Examples

  • Post author:
  • Post category:Java
  • Post comments:0 Comments
  • Post last modified:May 3, 2024


Java annotations, introduced in Java 5, provide a powerful and flexible way to add metadata to code elements such as classes, methods, and fields. Annotations enhance code readability, simplify development processes, and enable the compiler or runtime environment to process additional information. In this tutorial, we will explore the java.lang.annotation package and learn how to define and use custom annotations with practical examples.

Defining Custom Annotations:

To create a custom annotation, we use the @interface keyword. Here’s an example of a simple custom annotation:

In this example, we’ve created an annotation named MethodInfo with three elements (author, version, and description). The @Retention annotation specifies that the annotation should be retained at runtime, and the @Target annotation indicates that the annotation can be applied to methods.

Using Custom Annotations:

Now, let’s apply the custom annotation to a method:

In this example, the sampleMethod in ExampleClass is annotated with @MethodInfo. In the main method, we use reflection to retrieve the annotation and print its values.

Built-in Annotations:

Java also provides several built-in annotations in the java.lang.annotation package. Some common ones include:

  1. @Override:
  • Indicates that a method is intended to override a method in a superclass.
  1. @Deprecated:
  • Marks a program element (class, method, etc.) as deprecated.
  1. @SuppressWarnings:
  • Instructs the compiler to suppress specific warnings.


Meta-annotations are annotations applied to other annotations. Some common meta-annotations include @Retention, @Target, and @Documented. These meta-annotations define how the custom annotation should behave.


Java annotations provide a powerful mechanism for adding metadata to code, improving documentation, and enabling automated processing. In this tutorial, we covered the basics of defining and using custom annotations, along with examples of built-in annotations and meta-annotations. As you delve deeper into Java development, understanding and creating custom annotations can significantly enhance your ability to design flexible and expressive code.

Leave a Reply