jestem bardzo nowy w refleksji i mam wątpliwości, jak:
Jaki jest powód metody setAccessible klasy AccessibleObject mają parametr boolowski?
public void setAccessible(boolean flag) throws SecurityException
Metoda ta ma flagę boolen
parametr, który wskazuje nowy dostępności wszelkich pól lub metod.
Na przykład, jeśli mamy próby uzyskania dostępu do private
metodę klasy spoza klasy potem sprowadzić metodę używając getDeclaredMethod
i ustawić dostęp jako true
, więc może być wywołana, jak: method.setAccessible(true);
Teraz w których scenariusz powinniśmy użyć method.setAccessible(false);
, na przykład można go użyć, gdy istnieje metoda public
i ustawiamy dostępność jako false. Ale jaka jest tego potrzeba? Czy moje zrozumienie jest jasne?
Jeśli nie ma zastosowanie method.setAccessible(false)
wtedy możemy zmienić podpis metody jak:
public void setAccessible() throws SecurityException
Nie chcesz opuścić kod pod odbicie w stanie, który programista kodu ** nie zamierzają ** . Czy ty ? Użyłeś refleksji do _unlock_ kawałka kodu do inspekcji, czy chcesz go później zostawić _unlocked_? –
Yup. rozumiesz. –
Downvoater, możesz dodać komentarz, aby poprawić moje pytanie .. –