2011-12-30 21 views
8

Wiem, że it's not possible to extends Java annotations.Czy mogę utworzyć adnotację Java, która "rozszerza" @SuppressWarnings?

Utworzono adnotację dla pola prywatnego, co oznacza, że ​​pole prawdopodobnie pojawi się nieużywane w klasie, w której zostało zadeklarowane. Z tego powodu otrzymuję wiele ostrzeżeń o "nieużywanym polu" na moich polach z adnotacjami.

Czy istnieje sposób, aby nadać mojej adnotacji zachowanie @SuppressWarnings("unused"), więc nie muszę podwójnie dodawać adnotacji do każdego pola, które ma @MyAnnotation?

+2

Jeśli masz pomysł IntelliJ, możesz ustawić kontroler, aby ignorował dowolne pole z adnotacją. To nie jest rozwiązanie twojego problemu, ale może być obejściem problemu. – Thomas

+0

@Thomas dzięki - jak mówisz nie rozwiązanie, ale pomocne :) – Armand

Odpowiedz

0

Szybka odpowiedź to "nie". Kompilator Java nie wie nic o twojej adnotacji, więc nie przetworzy go tak, jak chcesz.


Ale szczera odpowiedź brzmi "tak". W tym article można znaleźć szczegółowy opis, jak pisać wtyczkę kompilatora. Szanse są na to, że możesz napisać wtyczkę, która w przypadku znalezienia adnotacji zajmie się nią i nie przejdzie pola do nieużywanego kontrolera.

Powiązane problemy