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

java反射_改變private中的變量及方法的簡單實例

 更新時間:2016年06月02日 17:37:31   投稿:jingxian  
下面小編就為大家?guī)硪黄猨ava反射_改變private中的變量及方法的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

java反射_改變private中的變量及方法的簡單實例

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;

 }

}

如這個,要改變name的值。如何改變。通過java反射如何改變

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

class<DemoTest> calzz=DemoTest.class;

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

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

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

接下來是:

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

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

接下來:

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

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

這時就可以打印出王五了。

那要如何把name為private 的值進行改變呢。

1。先得到field,

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

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

field.setAccessible(true);

3.對變量值進行修改

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

OK;

要訪問私有的方法也是一樣。

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

method.setAccessible(true);

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

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

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

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

相關(guān)文章

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

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

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

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

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

    Eclipse+Webservice簡單開發(fā)實例

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

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

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

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

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

    理解zookeeper選舉機制

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

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

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

    JAVA簡單分組的算法實現(xiàn)

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

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

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

    Kotlin + Retrofit + RxJava簡單封裝使用詳解

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

最新評論

乌拉特后旗| 保亭| 塘沽区| 克山县| 德钦县| 河池市| 陆良县| 洞口县| 四子王旗| 马山县| 吉安县| 光泽县| 德阳市| 九江市| 长寿区| 将乐县| 伊川县| 左云县| 客服| 平南县| 天等县| 郓城县| 家居| 澜沧| 甘谷县| 南平市| 旅游| 彩票| 晋州市| 道真| 珲春市| 天津市| 新野县| 新津县| 连城县| 湖北省| 邯郸市| 阿勒泰市| 元阳县| 宁武县| 万宁市|