国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - java反射_改變private中的變量及方法的簡(jiǎn)單實(shí)例

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

2020-05-09 12:03jingxian JAVA教程

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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方法

?
1
2
3
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)是:

?
1
2
3
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):

?
1
2
3
Method method=clazz.getMethod("getName",new Class[]{String.class});
 
method.invoke(test,new Object[]{"王五"});

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

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

1。先得到field,

?
1
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)檢查。

?
1
field.setAccessible(true);

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

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

OK;

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

?
1
2
3
4
5
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è)參考,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品美女久久久久久久久久久 | 久久在线视频 | 日韩成人在线播放 | 国产97在线 | 亚洲 | 国产精品99久久免费观看 | 国产丝袜视频 | 欧美视频免费在线 | 久久婷婷欧美 | 亚洲视频在线观看 | 国产黄色美女 | 鲁一鲁综合| 国产精品第一国产精品 | 天天操网| 国产成人久久精品麻豆二区 | 在线中文字幕视频 | 中文字幕一区二区三区四区 | av网站免费看 | 精品久久一区二区三区 | 亚洲视频在线观看视频 | 鲁管视频 | 国产精品一区二区无线 | 欧美视频在线免费 | 国产精品免费在线 | 国产精品自拍在线观看 | 亚洲精品一区二区三区樱花 | 中文字幕 国产 | 国产日韩精品一区 | 久久久久久99 | av在线大全 | 欧美视频三区 | 美女视频一区二区三区 | 九九九久久国产免费 | 香蕉久久一区二区不卡无毒影院 | 国产精品视频入口 | 亚洲一区二区 | 免费日韩精品 | 亚洲午夜精品视频 | 欧美一级二级三级视频 | 91麻豆精品国产91久久久久久久久 | 日韩不卡一区二区三区 | 在线国产视频观看 |