Używam niektórych adnotacji do dynamicznego ustawiania wartości pól w klasach. Ponieważ chcę to zrobić bez względu na to, czy jest to publiczne, chronione czy prywatne, jestem za każdym razem wywoływania obiektu Field, zanim wywołam metodę set()
. Moje pytanie brzmi, jaki rodzaj wpływu ma wywołanie setAccessible()
na samym polu?Odbicie Java - wpływ setAccessible (true)
Mówiąc dokładniej, jest to pole prywatne i ten zestaw wywołań kodowych setAccessible(true)
. Jeśli jakieś inne miejsce w kodzie było wtedy, aby odzyskać to samo pole przez odbicie, czy pole było już dostępne? A może metody getDeclaredFields()
i getDeclaredField()
zwracają za każdym razem nowe instancje obiektu Field?
Zgaduję, że innym sposobem wyrażenia pytania jest to, czy zadzwonię pod numer setAccessible(true)
, jak ważne jest przywrócenie pierwotnej wartości po zakończeniu?
Ponieważ jestem leniwy, i pomyślałem, kogoś już znałem odpowiedź z samej głowy. :) Dzięki za informację. – dnc253
... i dlatego, że sam testowanie oznacza, że wiesz o konkretnej implementacji, ale to nie oznacza, że testowane zachowanie wynikowe jest poprawne. :) – Devolus
"Dlaczego sam nie spróbujesz?" nie jest odpowiednią krytyką pytania Stack Overflow. Ta strona internetowa jest bazą wiedzy. Takie są właśnie takie pytania. –