Wir wissen, dass Java -Anwendungen nicht auf private Methoden anhaltenden Klassen zugreifen können, aber Hibernate hat diese Einschränkung nicht. Es kann zu verschiedenen Methodenstufen zugreifen, wie z. B. privat, standardmäßig, geschützt, öffentlich. Wie implementiert Hibernate diese Funktion? Die Antwort ist, Javas Reflexionsmechanismus wie folgt zu verwenden:
Importieren Sie java.lang.reflect.invocationTargetException; importieren Sie java.lang.reflect.method; public class reflectDemo {public static void main (String [] args) löst die Ausnahme aus {method method = packageclazz.class.getDeclaredMethod ("privilegedMethod); method.setAccessible (true); method.invoke (neuer packageclazz (), "452345234", "Q31234132");}} Klasse PackageClazz {private void privileggedMethod (String Invokername, String adb) {System.out.println ("---"+invokername+"-"+adb);Das Ausgangsergebnis ist: --- 452345234 --- Q31234132
Wir sehen, dass mit Javas Reflexionsmechanismus sogar die private Methode aufgerufen und verwendet werden kann. Ich habe jedoch eine Frage - auch wenn die private Methode aufgerufen werden kann, was ist der Sinn der Kapselung?
Das obige einfache Beispiel für die Verwendung von Reflection, um einen anderen Typ von privaten Methoden in Java aufzurufen, ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.