欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java對類私有變量的暴力反射技術(shù)講解

 更新時間:2019年03月30日 15:55:32   作者:徐劉根  
今天小編就為大家分享一篇關(guān)于Java對類私有變量的暴力反射技術(shù)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

Java對類私有變量的暴力反射

假設(shè)有一個類,他有一個私有變量:

package com.howlaa.day04;
public class ReflectPoint {
 private int priVar;
 public ReflectPoint(int priVar){
 this.priVar =priVar; 
} 
}

如果我們直接采用.get的方式,是不可能看到私有變量的。

我們可以這樣:

package com.howlaa.day04;
import java.lang.reflect.Field;
public class ReflectTest {
 public static void main(String[] args) throws Exception {
 ReflectPoint pt1 = new ReflectPoint(3);
 Field fieldx = pt1.getClass().getDeclaredField("priVar");
 fieldx.setAccessible(true);
 fieldx.set(pt1, 100);
 System.out.println(fieldx.get(pt1));
 }
}

輸出:100;

那么這個Filed是什么呢?他 是一個類,表示屬性的類。通過pt1得出ReflectPoint的字節(jié)碼。然后再調(diào)用getDeclaredField方法,可以獲取x屬性。再通過setAccessible使得可以訪問這個屬性。然后可以通過set方法賦值。注意:getClass獲得是ReflectPoint的字節(jié)碼,與具體實例無關(guān),因此,F(xiàn)ield也與具體實例無關(guān)。在設(shè)置和訪問的時候,均需要指定具體哪個實例。

Java對于私有變量的“暴力反射”技術(shù)

(1)兩個類:(在同一包下即可)

(2)ReflectPoint

(3)ReflectTest(下邊代碼寫在類里即可)

實現(xiàn)了暴力反射??!

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Java 5個人坐在一起(有關(guān)第五個人歲數(shù)的問題)

    Java 5個人坐在一起(有關(guān)第五個人歲數(shù)的問題)

    利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推,需要的朋友可以參考下
    2017-02-02
  • Java servlet后端開發(fā)超詳細教程

    Java servlet后端開發(fā)超詳細教程

    Servlet指在服務(wù)器端執(zhí)行的一段Java代碼,可以接收用戶的請求和返回給用戶響應(yīng)結(jié)果,下面這篇文章主要給大家介紹了關(guān)于Java.servlet生命周期的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Java設(shè)置token有效期的5個應(yīng)用場景(雙token實現(xiàn))

    Java設(shè)置token有效期的5個應(yīng)用場景(雙token實現(xiàn))

    Token最常見的應(yīng)用場景之一就是身份驗證,本文主要介紹了Java設(shè)置token有效期的5個應(yīng)用場景(雙token實現(xiàn)),具有一定的參考價值,感興趣的可以來了解一下
    2024-04-04
  • java如何自定義注解

    java如何自定義注解

    這篇文章主要介紹了java如何自定義注解問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 詳解Java的Hibernate框架中的緩存與二級緩存

    詳解Java的Hibernate框架中的緩存與二級緩存

    這篇文章主要介紹了Java的Hibernate框架中的緩存與二級緩存,Hibernate是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • Spring整合TimerTask實現(xiàn)定時任務(wù)調(diào)度

    Spring整合TimerTask實現(xiàn)定時任務(wù)調(diào)度

    這篇文章主要介紹了Spring整合TimerTask實現(xiàn)定時任務(wù)調(diào)度的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • SpringBoot中的自定義starter詳解

    SpringBoot中的自定義starter詳解

    這篇文章主要介紹了SpringBoot中的自定義starter詳解,SpringBoot中的starter是一種非常重要的機制,能夠拋棄以前繁雜的配置,將其統(tǒng)一集成進starter,需要的朋友可以參考下
    2024-01-01
  • java導(dǎo)出生成csv文件的方法

    java導(dǎo)出生成csv文件的方法

    這篇文章主要為大家詳細介紹了java導(dǎo)出生成csv文件的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Spring?Boot整合阿里開源中間件Canal實現(xiàn)數(shù)據(jù)增量同步

    Spring?Boot整合阿里開源中間件Canal實現(xiàn)數(shù)據(jù)增量同步

    這篇文章主要為大家介紹了Spring?Boot整合阿里開源中間件Canal實現(xiàn)數(shù)據(jù)增量同步示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Java排序之冒泡排序的實現(xiàn)與優(yōu)化

    Java排序之冒泡排序的實現(xiàn)與優(yōu)化

    冒泡排序是一種簡單的交換排序。之所以叫做冒泡排序,因為我們可以把每個元素當成一個小氣泡,根據(jù)氣泡大小,一步一步移動到隊伍的一端,最后形成一定對的順序。本文將利用Java實現(xiàn)冒泡排序,并進行一定的優(yōu)化,希望對大家有所幫助
    2022-11-11

最新評論