Мы знаем, что приложения Java не могут получить доступ к частным методам постоянных классов, но Hibernate не имеет этого ограничения. Он может получить доступ к различным уровням методов, таких как частные, дефолтные, защищенные, общественные. Как Hibernate реализует эту функцию? Ответ заключается в том, чтобы использовать механизм отражения Java следующим образом:
Импорт java.lang.reflect.invocationTargetException; Import java.lang.reflect.method; открытый класс ReferTydemo {public static void main (string [] args) throws exection {method = packageclazz.class.getDeclaredMethod ("privielegedMethod", new Class [] {string.class); method.setAccessible (true); method.invoke (new PackageClazz (), "452345234", "Q31234132");}} Class PackageClazz {private void privilegedMethod (String Invokername, String Adb) {System.out.println ("---"+Invokername+"---"+adb);Результатом вывода является: --- 452345234 --- Q31234132
Мы видим, что использование механизма отражения Java, даже частный метод можно назвать и использовать. Тем не менее, у меня есть вопрос - даже если частный метод может быть вызван, какой смысл инкапсуляции?
Приведенный выше простой пример использования отражения для вызова другого типа частного метода в Java - это все контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.