Utilizar la reflexión para invocar un método privado

1. Crear una clase de persona, escribir algunos métodos

seday18c Package Multa por; 
/ ** 
 * @author Xingsir 
 * crear una clase de persona, escribir unas pocas método 
 * / 
public class Persona { 
	public void EAT () { 
		System.out.println ( "estoy comiendo"); 
	} 
	public void run ( ) { 
		System.out.println ( "corro"); 
	} 
	// han añadido método privado para el ensayo de 
	vacío privada EAT (String nombre) { 
		System.out.println ( "I" + nombre +", lo comer "); 
	} 
	comer (String nombre public void, int cuenta) { 
		System.out.println (" I "+ nombre +", que estaba comiendo "+ count +" rana toro "); 
	} 

}

  2. Uso de reflexión para invocar un método privado

Paquete seday18c; 

Importe el java.lang.reflect.Method; 

/ ** 
* @author Xingsir 
* utilizando la reflexión para invocar el método privado 
* / 
ReflectDemo5 public class { 

	void main (String [] args) throws Exception public static { 
          // estática por Clase método forName de la carga de los persona 
		CLS class = la Class.forName ( "seday18c.Person"); 
		// instanciar un método de objeto 
		objeto cls.newInstance O = (); 
		/ * 
		 * clase fuera de la encapsulación por reflexión destruye el método de llamada privado Si no es necesario operar o diseñar requisitos, esto no es recomendable. 
		 * / 
		Método, m = cls.getDeclaredMethod ( "EAT", String.class); 
		// Establecer la operación de acceso (sin darles una configuración llamada directa) antes de acceder a los métodos privados 
		m.setAccessible (true); 
        m.invoke (O " cerdo "); 
		
	} 

}

  

Supongo que te gusta

Origin www.cnblogs.com/xingsir/p/12667594.html
Recomendado
Clasificación