java中利用反射調(diào)用另一類(lèi)的private方法的簡(jiǎn)單實(shí)例
我們知道,Java應(yīng)用程序不能訪問(wèn)持久化類(lèi)的private方法,但Hibernate沒(méi)有這個(gè)限制,它能夠訪問(wèn)各種級(jí)別的方法,如private, default, protected, public. Hibernate是如何實(shí)現(xiàn)該功能的呢?答案是利用JAVA的反射機(jī)制,如下:
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);
}
}
輸出結(jié)果為:---452345234----q31234132
我們看到,利用java的反射機(jī)制,即使是private方法,也可以被調(diào)用使用.不過(guò)我到產(chǎn)生一個(gè)疑問(wèn)--即然private方法都可以被調(diào)用,那么封裝又有何意義?
以上這篇java中利用反射調(diào)用另一類(lèi)的private方法的簡(jiǎn)單實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Java通過(guò)PropertyDescriptor反射調(diào)用set和get方法
- Java如何加載外部Jar的類(lèi)并通過(guò)反射調(diào)用類(lèi)的方法
- java反射調(diào)用方法NoSuchMethodException的解決方案
- java 反射調(diào)用Service導(dǎo)致Spring注入Dao失效的解決方案
- Java 使用反射調(diào)用jar包中的類(lèi)方式
- Java使用反射調(diào)用方法示例
- Java 反射調(diào)用靜態(tài)方法的簡(jiǎn)單實(shí)例
- 反射調(diào)用private方法實(shí)踐(php、java)
- java反射調(diào)用get/set方法實(shí)現(xiàn)
相關(guān)文章
解決HttpServletRequest無(wú)法獲取@RequestBody修飾的參數(shù)問(wèn)題及分析
Spring Boot中,@RequestBody讀取請(qǐng)求體后流關(guān)閉,導(dǎo)致Service層無(wú)法獲取,解決方案包括創(chuàng)建HTTP工具類(lèi)、請(qǐng)求體復(fù)制包裝器及攔截器配置,確保請(qǐng)求體可重復(fù)讀取2025-09-09
Java使用Socket判斷某服務(wù)能否連通代碼實(shí)例
這篇文章主要介紹了Java使用Socket判斷某服務(wù)能否連通代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
MyBatis詳細(xì)執(zhí)行流程的全紀(jì)錄
這篇文章主要給大家介紹了關(guān)于MyBatis詳細(xì)執(zhí)行流程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
springboot項(xiàng)目實(shí)現(xiàn)配置跨域
這篇文章主要介紹了springboot項(xiàng)目實(shí)現(xiàn)配置跨域問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09
Java中的java.lang.reflect.Type簡(jiǎn)介
在 Java 中,java.lang.reflect.Type 是一個(gè)接口,代表所有類(lèi)型的通用超類(lèi)型,它包括原始類(lèi)型、參數(shù)化類(lèi)型、數(shù)組類(lèi)型、類(lèi)型變量和基本類(lèi)型,本文給大家講解Java中的java.lang.reflect.Type是什么,需要的朋友可以參考下2024-06-06
SpringBoot3各種配置的優(yōu)先級(jí)對(duì)比小結(jié)
SpringBoot3提供了多種配置來(lái)源以滿足不同場(chǎng)景下的需求,本文詳細(xì)介紹了SpringBoot3中的配置優(yōu)先級(jí)對(duì)比小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12
SpringBoot + openFeign實(shí)現(xiàn)遠(yuǎn)程接口調(diào)用的過(guò)程
現(xiàn)在的微服務(wù)項(xiàng)目不少都使用的是springboot+spring cloud構(gòu)建的項(xiàng)目,微服務(wù)之間的調(diào)用都離不開(kāi)feign來(lái)進(jìn)行遠(yuǎn)程調(diào)用,這篇文章主要介紹了SpringBoot + openFeign實(shí)現(xiàn)遠(yuǎn)程接口調(diào)用,需要的朋友可以參考下2022-11-11

