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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品国产91久久久久久麻豆 | 成人在线播放 | 91久久综合九色综合欧美98 | 国产福利在线观看永久视频 | kk4444了欧美 | 精品久久伦理中文字幕 | 我把寡妇日出水好爽 | 国产成人黄网在线免 | 黑人biglackon10十| 好姑娘完整版在线观看中文 | 国产午夜精品一区二区三区不卡 | chinese调教踩踏视频 | 失禁尿丝袜vk | 国产aaaaa一级毛片 | 亚洲国产成人久久99精品 | 欧美日韩一二三区免费视频观看 | 黄德维| 成人免费淫片95视频观看网站 | 国产自在自拍 | 欧美一级专区免费大片俄罗斯 | 34看网片午夜理 | 男人天堂色男人 | 日本动漫啪啪动画片mv | 俄罗斯大逼 | 青草草在线 | 免费看欧美一级特黄a大片一 | 波多野结衣在线免费观看 | 日韩精品免费一级视频 | 国产精品成人麻豆专区 | 波多野 在线 | 嫩草视频在线观看视频播放 | 邪恶肉肉全彩色无遮盖 | 亚洲精品日韩专区在线观看 | 视频一本大道香蕉久在线播放 | 调教女警花穿环上班 | 91探花在线播放 | 国产在线观看精品 | 国产毛片在线观看 | 91精品国产综合久久香蕉 | 四川女人偷人真实视频 | 希望影院高清免费观看视频 |