W tym artykule dowiemy się jak używać adnotacji @Target przy tworzeniu własnej adnotacji.
@Target określa, w których miejscach konstruowana przez nas adnotacja może zostać użyta. Gdy zadeklarujemy, w jakich miejscach kodu jest możliwe użycie adnotacji, błędne jej umiejscowienie nie pozwoli na skompilowanie kodu.
Podstawowa składnia adnotacji
Adnotacje tworzy się używając deklaracji interface ze znakiem @ na początku. Taka adnotacja nic nie robi, lecz program nie wyrzuci błędu przy kompilacji.
public@interfaceMyAnnotation{}
Powyższa adnotacja nie ma zdefiniowanego miejsca, w którym możemy jej użyć. Aby to zrobić, należy dodać adnotację @Target, wraz z parametrami.
Parametry do adnotacji @Target możemy przekazać na 4 różne sposoby. W trzecim i czwartym przykładzie możliwe jest zdefiniowanie jednej lub większej liczby typów:
Gdzie możemy użyć adnotacji, w zależności od przekazanego typu ElementType?
ElementType.ANNOTATION_TYPE - adnotacja do tworzenia adnotacji 🙂. Na przykład wymienione w tytule @Target() jest taką adnotacją. Inny przykład to @Retention() opisujące cykl życia adnotacji. Obie są oznaczone adnotacją ElementType.ANNOTATION_TYPE.
ElementType.TYPE_USE - od Javy 8. Wszędzie tam gdzie użyty jest typ. “As of the Java SE 8 release, annotations can also be applied to any type use. This means that annotations can be used anywhere you use a type. A few examples of where types are used are class instance creation expressions (new), casts, implements clauses, and throws clauses”.