---
title: 'Wiederholbare Annotationen: @Repeatable'
url: 'https://www.tutego.de/blog/javainsel/2013/09/wiederholbare-annotationen-repeatable'
markdown: 'https://www.tutego.de/blog/javainsel/2013/09/wiederholbare-annotationen-repeatable.md'
date: '2013-09-10'
description: 'Normalerweise nutzen Entwickler Annotationen wie einmalige Modifizierer, und es ergibt keinen Sinn, etwa @Override @Override String toString() zu schreiben, genauso wenig wie es keinen Sinn ergibt final static final double PI zu deklarieren. Doch da es durchaus Meta-Daten gibt, die mehrmals auftauc…'
taxonomy:
  category:
    - Insel
    - 'Java 8'
---

# Wiederholbare Annotationen: @Repeatable

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://www.tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://www.tutego.de/blog/javainsel/)

## Wiederholbare Annotationen: @Repeatable

10.09.2013 · [Christian Ullenboom](https://www.tutego.de/blog/javainsel/author/admin/)

Normalerweise nutzen Entwickler Annotationen wie einmalige Modifizierer, und es ergibt keinen Sinn, etwa `@Override` `@Override` `String` `toString()` zu schreiben, genauso wenig wie es keinen Sinn ergibt final static final double PI zu deklarieren. Doch da es durchaus Meta-Daten gibt, die mehrmals auftauchen können, gibt es seit Java 8 eine Erweiterung, dass Annotationen wiederholt werden dürfen. Allerdings müssen die Annotationstypen dieser wiederholbaren Annotationen selbst mit einer besonderen Meta-Annotation `@Repeatable` ausgezeichnet werden. Damit ist es aber noch nicht getan, denn `@Repeatable` muss als Element einen Typ bekommen, der den Container angibt.

Beispiel: Der Annotationstyp für Autoren kann so aussehen:

```java
public @interface Author { String name(); }
```

Soll nun die Annotation mehrfach verwendet werden, ist die Meta-Annotation nötig und mit ihr die Angabe eines Containers:

```java
@Repeatable( Authors.class )
public @interface Author { String name(); }
```

Der Container ist selbst ein Annotationstyp mit einem Feld als Element. Der Typ des Feldes ist exakt der wiederholbare Annotationstyp.

```java
public @interface Authors {
  Autor[] value;
}
```

Ohne `@Repeatable` am Annotationstyp wird eine mehrmalige Verwendung einer Annotation zu einem Compilerfehler führen. Im Java SE 8 gibt es bisher keine Verwendung dieses Annotationstyps, also auch keine wiederholbaren Annotationen.

Kategorien: [Insel](https://www.tutego.de/blog/javainsel/category/insel/), [Java 8](https://www.tutego.de/blog/javainsel/category/java-8/)

[← Alle Beiträge](https://www.tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [@Target Annotation seit Java 8](https://www.tutego.de/blog/javainsel/2013/09/target-annotation-seit-java-8.md)
- Next: [Pack200-Format](https://www.tutego.de/blog/javainsel/2013/09/pack200-format.md)
