czwartek, 30 września 2010

Mechanizm refleksji - dostęp do prywatnych atrybutów.

Oczywiście mechanizm refleksji, umożliwia dostęp nie tylko do metod prywatnych, ale również prywatnych atrybutów klasy. Krótki kodzik poniżej, gdyby ktoś potrzebował dostać się do takiego prywatnego pola.

private Integer getPrivateField(SomeClass someClass) 
    throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {

    Field field = SomeClass.class.getDeclaredField("privateInteger");
    field.setAccessible(true); 
 
    return (Integer) field.get(someClass); 
}

public class SomeClass{
    
    private Integer privateInteger;
    ...
}

Brak komentarzy:

Prześlij komentarz