日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Java 反射 (快速了解反射)

發布時間:2023/11/27 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 反射 (快速了解反射) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

反射的概念

JAVA反射機制是在運行狀態中,對于任意一個實體類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意方法和屬性;這種動態獲取信息以及動態調用對象方法的功能稱為java語言的反射機制

Java反射有三個動態性質:
1、運行時生成對象實例
2、運行期間調用方法
3、運行時更改屬性
通過這些動態性質,JAVA反射可以在程序運行時獲取對象和類的真實信息。

Java反射可以實現的功能:
1、在運行時判斷任意一個對象所屬的類
2、在運行時構造任意一個類的對象
3、在運行時判斷任意一個類所具有的方法和屬性
4、在運行時調用任意一個對象的方法
5、生成動態代理
?

與Java反射相關的類如下:

類名用途
Class類代表類的實體,在運行的Java應用程序中表示類和接口
Field類代表類的成員變量(成員變量也稱為類的屬性)
Method類代表類的方法
Constructor類代表類的構造方法

?

Class類

?

?

假如現在有一個私有的student 方法 想調用這個方法就可以使用反射

一個student 類如下

public class Student {private String name;private int age;private Student(String name, int age) {this.name = name;this.age = age;}public Student(){throw new IllegalAccessError("就不給你創建");}private String getName() {return name == null ? "" : name;}private void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}
}

?

實現如下

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Fine{public static void main(String[] args){Class<?> clz = null;try {clz = Class.forName("Student");} catch (ClassNotFoundException e) {e.printStackTrace();}// 找到帶有這個參數的構造方法Constructor constructor = null;try {constructor = clz.getDeclaredConstructor(String.class, int.class);} catch (NoSuchMethodException e) {e.printStackTrace();}constructor.setAccessible(true);// 初始化對象Object student = null;try {student = constructor.newInstance("張三", 18);} catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {e.printStackTrace();}System.out.println("--------------"+constructor.toString());// 找到該私有方法Method getName = null;try {getName = clz.getDeclaredMethod("getName");} catch (NoSuchMethodException e) {e.printStackTrace();}getName.setAccessible(true);String name = null;try {name = (String) getName.invoke(student);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}System.out.println("--------------"+name);// 找到私有屬性Field age = null;try {age = clz.getDeclaredField("age");} catch (NoSuchFieldException e) {e.printStackTrace();}age.setAccessible(true);try {age.setInt(student, 20);   // 修改屬性} catch (IllegalAccessException e) {e.printStackTrace();}try {System.out.println("--------------"+age.get(student));} catch (IllegalAccessException e) {e.printStackTrace();}}
}

輸出結果:

總結

以上是生活随笔為你收集整理的Java 反射 (快速了解反射)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 性色国产成人久久久精品 | 69av一区二区三区 | 樱花影院最新免费观看攻略 | 久久久午夜精品福利内容 | 特级淫片裸体免费看 | 日本精品999| 性中国古装videossex | 欧美一区二区日韩一区二区 | 午夜激情av在线 | 精品97人妻无码中文永久在线 | 稀缺小u女呦精品呦 | 国产精品专区在线观看 | 夜夜操影视 | 中国1级毛片 | 成人精品一区二区三区电影黑人 | 一级日韩一级欧美 | 国产制服丝袜在线 | 久久久久亚洲av片无码 | 91国产丝袜在线播放 | 狠操av| 欧美日本韩国在线 | 波多野结衣精品 | 杨幂毛片 | 91看片国产| 少妇人妻无码专区视频 | 在线看中文字幕 | 精品视频无码一区二区三区 | 97视频总站 | 国产欧美一区二区三区国产幕精品 | 亚洲性激情 | 色综合五月 | 欧美成人影音 | 色婷婷av一区二区三区之红樱桃 | 亚洲精品乱码久久久久久蜜桃动漫 | 都市激情 自拍偷拍 | 人妻久久一区二区 | 岛国a视频 | 97超碰人人澡 | 欧美国产在线观看 | 黄色三级在线播放 | 成人高清视频免费观看 | 寡妇一级片 | 国产成人精品视频ⅴa片软件竹菊 | 国产第20页 | 黄色大片国产 | 国产免费www | 偷拍中国夫妇高潮视频 | 国产亚洲黄色片 | 午夜在线播放 | 少妇与公做了夜伦理69 | 日本视频网站在线观看 | 日本做受 | 天堂中文网 | 亚洲狠狠丁香婷婷综合久久久 | 丝袜诱惑一区 | 91精品国产91久久久久 | 丝袜一区二区三区四区 | 日本免费视频 | 91久久在线| 国产黄a三级三级三级 | 毛片官网 | 草莓视频在线观看18 | 成人91免费视频 | 天天操 夜夜操 | 能免费看18视频网站 | 人人艹在线观看 | 97伊人网| 国内久久精品 | 国产在线第二页 | www视频免费观看 | 久久露脸国语精品国产91 | 欧美日韩精品在线观看 | porn麻豆| 国产精品男同 | 久一视频在线观看 | 国产亚洲精久久久久久无码77777 | 嫩模一区二区三区 | 在线aa| 国产一级特黄毛片 | 免费成人小视频 | 99热这里只| 日本国产网站 | 国产高清成人 | 国产成人影视 | 国产中文字字幕乱码无限 | 欧洲亚洲视频 | 久久婷婷一区二区 | 日本a级c片免费看三区 | 成人性毛片 | av毛片大全 | av一级黄色 | 国产区精品| 成人在线免费视频观看 | 久久在线免费观看 | 日韩电影三级 | 依依综合网 | 成人性生生活性生交全黄 | 国产91九色 | 全部毛片永久免费看 |