最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java反射_改變private中的變量及方法的簡(jiǎn)單實(shí)例

 更新時(shí)間:2016年06月02日 17:37:31   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇java反射_改變private中的變量及方法的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

java反射_改變private中的變量及方法的簡(jiǎn)單實(shí)例

class DemoTest{

 private String name="123";

 public getName(){

  system.out.println("public getName " + name);

  return name;

 }

 private getName2(){

  system.out.println("private getName2 " + name);

  return name;

 }

}

如這個(gè),要改變name的值。如何改變。通過(guò)java反射如何改變

先來(lái)看看如何用反射來(lái)調(diào)用getName方法

class<DemoTest> calzz=DemoTest.class;

Constructor cons=clazz.getConstructor(new class[]{});//這個(gè)是得到class對(duì)象的構(gòu)造方法。參數(shù)為構(gòu)造方法的參數(shù)的類的對(duì)象。

如:DemoTest有一個(gè)構(gòu)造方法為public DemoTest(String arg0,String arg1){......}

這時(shí),Constructor cons=clazz.getConstructor(new class[]{String.class,String.class});兩個(gè)String.calss分別對(duì)應(yīng)arg0,arg1.

接下來(lái)是:

DemoTest test=(DemoTest)cons.newInstance(new Object[]{});//生成相應(yīng)的對(duì)象。參數(shù)new Object[]{} 就是構(gòu)造方法對(duì)應(yīng)的參數(shù)的具體值。如剛才的:

DemoTest test=(DemoTest)cons.newInstance(new Object[]{“李車”,"張三"});

接下來(lái):

Method method=clazz.getMethod("getName",new Class[]{String.class});

method.invoke(test,new Object[]{"王五"});

這時(shí)就可以打印出王五了。

那要如何把name為private 的值進(jìn)行改變呢。

1。先得到field,

Field field=clazz.getDeclaredField("name");

2.將此對(duì)象的 accessible 標(biāo)志設(shè)置為指示的布爾值。值為 true 則指示反射的對(duì)象在使用時(shí)應(yīng)該取消 Java 語(yǔ)言訪問(wèn)檢查。值為 false 則指示反射的對(duì)象應(yīng)該實(shí)施 Java 語(yǔ)言訪問(wèn)檢查。

field.setAccessible(true);

3.對(duì)變量值進(jìn)行修改

field.set("name","王五");

OK;

要訪問(wèn)私有的方法也是一樣。

Method method=clazz.getDeclaredMethod("getName2");

method.setAccessible(true);

method.invoke(test,new Object[]{"王五"});

用getDeclaredFields就能得到private 和public protend protected 的字段

如果用c.getFields();只能得到public類型的屬性

以上這篇java反射_改變private中的變量及方法的簡(jiǎn)單實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Spring?Security?捕獲?filter?層面異常返回我們自定義的內(nèi)容

    詳解Spring?Security?捕獲?filter?層面異常返回我們自定義的內(nèi)容

    Spring?的異常會(huì)轉(zhuǎn)發(fā)到?BasicErrorController?中進(jìn)行異常寫(xiě)入,然后才會(huì)返回客戶端。所以,我們可以在?BasicErrorController?對(duì)?filter異常進(jìn)行捕獲并處理,下面通過(guò)本文給大家介紹Spring?Security?捕獲?filter?層面異常,返回我們自定義的內(nèi)容,感興趣的朋友一起看看吧
    2022-05-05
  • 巧妙的利用Mongodb做地理空間查詢

    巧妙的利用Mongodb做地理空間查詢

    本篇文章將會(huì)以Mongodb為數(shù)據(jù)庫(kù),講述如何在數(shù)據(jù)庫(kù)層級(jí)進(jìn)行定位查詢。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • Eclipse+Webservice簡(jiǎn)單開(kāi)發(fā)實(shí)例

    Eclipse+Webservice簡(jiǎn)單開(kāi)發(fā)實(shí)例

    這篇文章主要介紹了Eclipse+Webservice簡(jiǎn)單開(kāi)發(fā)實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Javabean轉(zhuǎn)換成json字符并首字母大寫(xiě)代碼實(shí)例

    Javabean轉(zhuǎn)換成json字符并首字母大寫(xiě)代碼實(shí)例

    這篇文章主要介紹了javabean轉(zhuǎn)成json字符并首字母大寫(xiě)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Java如何利用Mybatis進(jìn)行數(shù)據(jù)權(quán)限控制詳解

    Java如何利用Mybatis進(jìn)行數(shù)據(jù)權(quán)限控制詳解

    這篇文章主要介紹了Java如何利用Mybatis進(jìn)行數(shù)據(jù)權(quán)限控制詳解,數(shù)據(jù)權(quán)限控制最終的效果是會(huì)要求在同一個(gè)數(shù)據(jù)請(qǐng)求方法中,根據(jù)不同的權(quán)限返回不同的數(shù)據(jù)集,而且無(wú)需并且不能由研發(fā)編碼控制。,需要的朋友可以參考下
    2019-06-06
  • 理解zookeeper選舉機(jī)制

    理解zookeeper選舉機(jī)制

    本文主要介紹了zookeeper選舉機(jī)制的相關(guān)知識(shí),具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • Spring @Cacheable自定義緩存過(guò)期時(shí)間的實(shí)現(xiàn)示例

    Spring @Cacheable自定義緩存過(guò)期時(shí)間的實(shí)現(xiàn)示例

    本文主要介紹了Spring @Cacheable自定義緩存過(guò)期時(shí)間的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • JAVA簡(jiǎn)單分組的算法實(shí)現(xiàn)

    JAVA簡(jiǎn)單分組的算法實(shí)現(xiàn)

    本文介紹了“JAVA簡(jiǎn)單分組的算法實(shí)現(xiàn)”,需要的朋友可以參考一下
    2013-03-03
  • Java面試之限流的實(shí)現(xiàn)方式小結(jié)

    Java面試之限流的實(shí)現(xiàn)方式小結(jié)

    限流是指在各種應(yīng)用場(chǎng)景中,通過(guò)技術(shù)和策略手段對(duì)數(shù)據(jù)流量、請(qǐng)求頻率或資源消耗進(jìn)行有計(jì)劃的限制,本文為大家整理了常見(jiàn)的限流的實(shí)現(xiàn)方式,有需要的可以參考下
    2024-02-02
  • Kotlin + Retrofit + RxJava簡(jiǎn)單封裝使用詳解

    Kotlin + Retrofit + RxJava簡(jiǎn)單封裝使用詳解

    這篇文章主要介紹了Kotlin + Retrofit + RxJava簡(jiǎn)單封裝使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07

最新評(píng)論

北辰区| 汝城县| 张家川| 沙坪坝区| 隆林| 吉安县| 乌拉特前旗| 海兴县| 土默特左旗| 德惠市| 佛教| 辉南县| 璧山县| 呼和浩特市| 民县| 桐柏县| 体育| 淮北市| 茶陵县| 沙田区| 合作市| 明星| 汪清县| 星子县| 锡林浩特市| 绥棱县| 文登市| 麻江县| 云和县| 海阳市| 阿鲁科尔沁旗| 东安县| 英德市| 惠州市| 封开县| 绥芬河市| 天门市| 盘锦市| 宜良县| 石景山区| 青川县|