Red de conocimiento del abogados - Ley de patentes - Reflexión de Java, llamando a métodos privados
Reflexión de Java, llamando a métodos privados
tan?fácil
String?path="com.test.B"
Class?clazz?=?Class.forName(ruta); // Obtener el reflejo de b
B?b?=(B)clazz.newInstance();//La premisa es que la clase b tiene un constructor sin parámetros
Método?m?= ? clazz.getDeclaredMehod("SetName", String.class);
m.setAccessible(true); //Puedes acceder a métodos privados sin realizar comprobaciones de seguridad
m. b, "jaja");
Esto es para B (se llama y asigna el siguiente método)
private?void?SetName(String?s){}
ps?getDeclaredMehod? es una llamada a un método privado? Para acceder, debes agregar setAccessible
getMehod? es una llamada a un método general, no es necesario agregar setAccessible