Sabemos que las aplicaciones Java no pueden acceder a métodos privados de clases persistentes, pero Hibernate no tiene esta limitación. Puede acceder a varios niveles de métodos, como privados, predeterminados, protegidos, público. ¿Cómo hibernate implementa esta función? La respuesta es usar el mecanismo de reflexión de Java, como sigue:
import java.lang.reflect.invocationTargetException; import java.lang.reflect.method; public class ReflectDemo {public static void main (string [] args) lanza excepción {método método = packageClazz.class.getDeClaredMethod ("privilegedmethod", nueva clase [] {String.class, string.class}; método.setAccessible (verdadero); Method.invoke (new PackageClazz (), "452345234", "Q31234132");}} class PackageClazz {private void privilegedMethod (string Invokername, String ADB) {System.out.Println ("---"+InvokEname+"---"+ADB);}}El resultado de la salida es: --- 452345234 --- Q31234132
Vemos que utilizando el mecanismo de reflexión de Java, incluso se puede llamar y utilizar el método privado. Sin embargo, tengo una pregunta: incluso si se puede llamar al método privado, ¿cuál es el punto de encapsulación?
El ejemplo simple anterior de usar reflexión para llamar a otro tipo de método privado en Java es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.