Nous savons que les applications Java ne peuvent pas accéder à des méthodes privées de classes persistantes, mais Hibernate n'a pas cette limitation. Il peut accéder à différents niveaux de méthodes, tels que privé, par défaut, protégé, public. Comment Hibernate implémente-t-il cette fonction? La réponse est d'utiliser le mécanisme de réflexion de Java, comme suit:
Importer java.lang.reflect.invocationtargetException; import java.lang.reflect.method; public class refleftemo {public static void main (string [] args) lance une exception {méthode méthode = packageclazz.class.getDeclaredMethod ("privilEdMethod", new class [] {string.class, string}); Method.SetAccessible (true); Method.invoke (new PackageClazz (), "452345234", "Q31234132");}} class PackageClazz {private void privilEgedMethod (String invokername, String Adb) {System.out.println ("---" + invokern + "---" + adb);}}Le résultat de sortie est: --- 452345234 --- Q31234132
Nous voyons que l'utilisation du mécanisme de réflexion de Java, même la méthode privée peut être appelée et utilisée. Cependant, j'ai une question - même si la méthode privée peut être appelée, quel est l'intérêt de l'encapsulation?
L'exemple simple ci-dessus de l'utilisation de la réflexion pour appeler un autre type de méthode privée en Java est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.