annotacje w javie

  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,
Mam pytanie odnoścnie annotacji, mianowicie musze zrobić annotację w stylu:

// -to w jednej klasie
@Anno int a; - to w jednej klasie
int b;
int c;

potem metoda która przydziela wartości do tych zmiennych.

następnie w innej klasie narzędziowej na zasadzie refleksji muszę uzyskać wartość pól który zawiera annotacje (w tym przypadku chodzi o wartośc pola a).

wydaje mi sie że w klasie annotacyjnej powinno zanleść sie cos w stylu int a() default .......; (i wydaje mi się że tutaj powienienem kokoRZystaćystać własnie z wartości default aby potem w klasie narzędziowej skorzystać z wyrażenia:

for( Field f : main.getDeclaredFields()){ // main to dokladniej Class mainKlasa przekazywany do narzedziowej klasy w konstruktorze
Anno adnotacja = f.getAnnotation(Anno.class);
int values = adnotacja.a();
}

Wydaje mi się, że postać annotacji @Anno int a; lub @Anno() int a; wymusza skorzystanie z tej wartości default znajdującego się w klasie adnotacji może mi ktoś powiedzieć czy jest możliwosc wstawiania wartości default o takiej wartości jakie ma dane pole czy w ogóle to trzeba inaczej rozwiązać

iooi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 573
0

Adnotacja nie ma mieć żadnego defaulta ani nic. Skoro masz już pole, które posiada adnotację Anno, to wystarczy pobrać jego wartość:

Kopiuj
if (f.getAnnotation(Anno.class) != null) {
    int wartosc = f.getInt(obiektPosiadajacyToPole);
    // ....
}
  • Rejestracja: dni
  • Ostatnio: dni
0

dzieki

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.