一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

服務器之家 - 編程語言 - JAVA教程 - java反射_改變private中的變量及方法的簡單實例

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

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

下面小編就為大家帶來一篇java反射_改變private中的變量及方法的簡單實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

?
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;
 
 }
 
}

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

先來看看如何用反射來調用getName方法

?
1
2
3
class<DemoTest> calzz=DemoTest.class;
 
Constructor cons=clazz.getConstructor(new class[]{});//這個是得到class對象的構造方法。參數為構造方法的參數的類的對象。

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

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

接下來是:

?
1
2
3
DemoTest test=(DemoTest)cons.newInstance(new Object[]{});//生成相應的對象。參數new Object[]{} 就是構造方法對應的參數的具體值。如剛才的:
 
DemoTest test=(DemoTest)cons.newInstance(new Object[]{“李車”,"張三"});

接下來:

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

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

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

1。先得到field,

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

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

?
1
field.setAccessible(true);

3.對變量值進行修改

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

OK;

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

?
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中的變量及方法的簡單實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 5555kkkk香蕉在线观看 | 欧美精品v欧洲高清 | 香蕉久久夜色精品国产小优 | 99热国产在线观看 | 久久久无码精品亚洲A片猫咪 | 免费看3d小舞被躁视频网站 | 性xxxx中国 | 无遮无挡免费视频 | 久久99国产亚洲高清观着 | 国产精品合集久久久久青苹果 | 狠狠干2017 | 午夜国产精品视频在线 | 楚乔传第二部全60集免费观看 | 亚洲成年人免费网站 | se婷婷| 青青青青青国产费线在线观看 | 国内精品一区二区三区东京 | 四虎e234hcom| 毛片免费网站 | 日韩视频一区二区 | 欧美专区亚洲 | 91国内在线国内在线播放 | 精东影业传媒全部作品 | 日韩毛片在线影视 | 欧美综合国产精品日韩一 | jizz女16处 | 国产精品密播放国产免费看 | 亚洲麻豆精品 | 国产愉拍精品视频手机 | 丝袜老师好湿好紧我要进去了 | 青青草原影院 | 香蕉久久一区二区三区 | 亚洲精品有码在线观看 | 国内精品久久久久久野外 | 亚洲激情欧美 | 日本中文字幕二区三区 | 不卡一区二区三区 | 免费观看a毛片一区二区不卡 | 久久久无码精品无码国产人妻丝瓜 | 扒开女人屁股眼看个够 | juy799大岛优香在线观看 |