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