2012-01-24 16 views
9

Witam: Chciałem się upewnić, że adnotacja jest obecna podczas kompilacji w klasie. Czy to możliwe ? Zdaję sobie sprawę, że annoatie są, same w sobie, klasami, więc zakładam, że tak - ale ja po prostu nie jestem pewien syntaktycznie, gdzie i jak egzekwować/wdrażać taką strukturę na moich zajęciach.Wymuszanie adnotacji java podczas kompilacji

+0

Często widziałem wariatory adnotacji używane jako część zestawu testów jednostkowych. Czy to działa dla ciebie? – templatetypedef

+0

Cóż - mam pewne stałe, które trzeba zdobyć z zajęć. Klasy mają brzydkiego konstruktora, więc nie mogę ich wymusić używając modułów pobierających. Więc pomyślałem, że będę opisywał klasę przy użyciu adnotacji o stałych parametrach jako pól opisu. – jayunit100

Odpowiedz

14

Można napisać procesor adnotacji, aby uruchomić dowolną logikę w czasie kompilacji.

Z procesora adnotacji można sprawdzać, czy dana klasa ma określoną strukturę lub członka, jeśli dana adnotacja istnieje w danej klasie. Są dość elastyczne - więcej pomysłu na to, co możesz z nimi zrobić, sprawdź: the API. Są również obsługiwane w głównych IDE, takich jak Eclipse i Netbeans.

Wprowadzenie do pisania procesora adnotacji to here.

+0

To jest dobra odpowiedź. Będę czekać, aby sprawdzić, czy istnieje podejście na wyższym poziomie lub prostsze (tj. Sposób na proste egzekwowanie tego w istniejącym kodzie/klasach). – jayunit100

+0

Z tego, co wiem, procesor adnotacji pominie przetwarzanie na klasach, które nie mają jeszcze adnotacji, co nie jest tym, czego szuka OP. Szukam tego samego rozwiązania, więc jeśli się mylę, bardzo by mi się podobało. –

+2

Jeśli użyjesz @SupportedAnnotationTypes ("*") na swoim procesorze, to wybierze wszystkie klasy, nawet jeśli nie ma adnotacji na nim. – prunge

Powiązane problemy