Junior — Middle
Como é que se pode aceder a campos privados de um objeto através de reflexão?
sobes.tech IA
Resposta da IA
Em Java, através de reflexão, é possível aceder a campos privados de um objeto, alterando a sua acessibilidade com o método setAccessible(true). Isto permite ler e modificar os valores desses campos.
Exemplo:
import java.lang.reflect.Field;
public class Example {
private String secret = "hidden";
public static void main(String[] args) throws Exception {
Example obj = new Example();
Field field = Example.class.getDeclaredField("secret");
field.setAccessible(true); // remove a restrição de acesso
// Ler o valor do campo privado
String value = (String) field.get(obj);
System.out.println("Valor secreto: " + value);
// Alterar o valor do campo privado
field.set(obj, "revealed");
System.out.println("Novo valor secreto: " + field.get(obj));
}
}
É importante lembrar que o uso de setAccessible(true) pode violar a encapsulação e deve ser usado com cautela.