java中利用反射調用另一類的private方法的簡單實例
我們知道,Java應用程序不能訪問持久化類的private方法,但Hibernate沒有這個限制,它能夠訪問各種級別的方法,如private, default, protected, public. Hibernate是如何實現(xiàn)該功能的呢?答案是利用JAVA的反射機制,如下:
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class ReflectDemo {
public static void main(String[] args) throws Exception {
Method method = PackageClazz.class.getDeclaredMethod("privilegedMethod", new Class[]{String.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的反射機制,即使是private方法,也可以被調用使用.不過我到產(chǎn)生一個疑問--即然private方法都可以被調用,那么封裝又有何意義?
以上這篇java中利用反射調用另一類的private方法的簡單實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決HttpServletRequest無法獲取@RequestBody修飾的參數(shù)問題及分析
Spring Boot中,@RequestBody讀取請求體后流關閉,導致Service層無法獲取,解決方案包括創(chuàng)建HTTP工具類、請求體復制包裝器及攔截器配置,確保請求體可重復讀取2025-09-09
Java中的java.lang.reflect.Type簡介
在 Java 中,java.lang.reflect.Type 是一個接口,代表所有類型的通用超類型,它包括原始類型、參數(shù)化類型、數(shù)組類型、類型變量和基本類型,本文給大家講解Java中的java.lang.reflect.Type是什么,需要的朋友可以參考下2024-06-06
SpringBoot + openFeign實現(xiàn)遠程接口調用的過程
現(xiàn)在的微服務項目不少都使用的是springboot+spring cloud構建的項目,微服務之間的調用都離不開feign來進行遠程調用,這篇文章主要介紹了SpringBoot + openFeign實現(xiàn)遠程接口調用,需要的朋友可以參考下2022-11-11

