精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一文講透 Java 中的反射

開發
反射機制的核心是Class對象,它代表一個類。Java 虛擬機(JVM)在加載類時會自動創建這個Class對象。

什么是反射

反射是 Java 中的一個特性,它允許程序在運行時獲取自身的信息,并動態地操作類或對象的屬性、方法和構造函數。通過反射,我們可以在事先不知道確切類名的情況下實例化對象、調用方法和設置屬性。

反射機制的核心是Class對象,它代表一個類。Java 虛擬機(JVM)在加載類時會自動創建這個Class對象。

JVM 如何創建一個類

當我們編寫一個類并進行編譯時,編譯器會將其轉換為存儲在.class文件中的字節碼。在類加載過程中,JVM 使用ClassLoader讀取.class文件,將字節碼加載到內存中,并根據這些信息創建相應的Class對象。由于每個類在 JVM 中只加載一次,所以每個類都對應一個唯一的Class對象。

示例:

public class User extends People {
    public String name;
    private int age;

    private static int staticFiled = 10;
    private final String sex;
    protected String protectedFiled;

    static {
        System.out.println("靜態方法執行");
    }

    public User(String name, String sex) {
        this.name = name;
        this.sex = sex;
    }

    private void privateMethod() {
        System.out.println("我是私有方法");
    }

    public void publicMethod() {
        System.out.println("我是公共方法");
    }
}

public class People {
    public String publicFiled;
    private String privateFiled;
}

獲取Class對象的三種方式

(1) 第一種方法通過類名使用.class獲取類對象。這是在編譯時完成的,所以明確指定了類型User,不會導致任何錯誤。使用這種方法獲取對象不會觸發類初始化;只有在訪問類的靜態成員或實例時才會進行初始化。

Class<User> userClass = User.class;

實例化一個對象:

User userInstance = userClass.getDeclaredConstructor(String.class, String.class).newInstance("張三", "男");

(2) 第二種方法通過對象的getClass()方法獲取類對象。這種方法適用于從已實例化的類對象中獲取類對象。請注意,類型不是User,而是通配符?,因為Class對象是從User的實例中獲取的,實例的具體類型只能在運行時確定,而不是在編譯時。

User user = new User("張三", "男");
Class<?> userClass = user.getClass();

實例化一個對象:

Constructor<?> constructor = userClass.getConstructor(String.class, String.class);
User userInstance = (User) constructor.newInstance("張三", "男");

(3) 第三種方法使用靜態方法Class.forName()通過全路徑獲取類對象。由于類型只能在運行時知道,所以類型是通配符?。通過這種方法獲取類對象將立即觸發類初始化。

Class<?> userClass = Class.forName("org.example.reflect.entity.User");

創建一個實例:

Constructor<?> constructor = userClass.getDeclaredConstructor(String.class, String.class);
User userInstance = (User) constructor.newInstance("張三", "男");

在 Java 中訪問對象字段

獲取所有公共字段要獲取所有公共字段,包括從父類繼承的字段,使用getFields():

Field[] fields = user.getFields();
for (Field field : fields) {
    System.out.println(field);
}

輸出:

public java.lang.String org.example.reflect.entity.User.name
public java.lang.String org.example.reflect.entity.People.publicField

(2) 獲取所有聲明的字段要獲取類中所有聲明的字段,無論其訪問級別如何,使用getDeclaredFields()。這不包括從超類繼承的字段:

Field[] fields = user.getDeclaredFields();
for (Field field : fields) {
    System.out.println(field);
}

輸出:

public java.lang.String org.example.reflect.entity.User.name
private int org.example.reflect.entity.User.age
private final java.lang.String org.example.reflect.entity.User.sex
protected java.lang.String org.example.reflect.entity.User.protectedField

(3) 獲取超類中的字段要獲取超類中的字段,使用getSuperclass():

Field[] fields = user.getSuperclass().getDeclaredFields();
for (Field field : fields) {
    System.out.println(field);
}

輸出:

public java.lang.String org.example.reflect.entity.People.publicField
private java.lang.String org.example.reflect.entity.People.privateField

(4) 獲取特定字段要通過名稱獲取特定公共字段,使用getField(String name)。對于任何特定字段,無論其訪問級別如何,使用getDeclaredField(String name)。

(5) 處理不存在的字段嘗試訪問不存在的字段不會產生編譯時錯誤,但會在運行時拋出異常:

try {
    Field nonExistentField = user.getDeclaredField("nonExistentField");
} catch (NoSuchFieldException e) {
    e.printStackTrace();
}

輸出:

java.lang.NoSuchFieldException: nonExistentField

(6) 設置字段值要設置私有靜態字段的值,首先使其可訪問:

Class<?> userClass = Class.forName("org.example.reflect.entity.User");
Field staticField = userClass.getDeclaredField("staticField");
staticField.setAccessible(true);
System.out.println(staticField.get(null));

如果字段是final的,仍然可以修改它:

Field field = userClass.getDeclaredField("sex");
field.setAccessible(true);
field.set(obj, "女生");
System.out.println(field.get(obj));

輸出:

女生

訪問方法

訪問方法與訪問字段類似:

  • getMethods()檢索類及其超類中的所有公共方法。
  • getDeclaredMethods()檢索類中所有聲明的方法,無論訪問級別如何。
  • getMethod(String name, Class<?>... parameterTypes)按名稱和參數類型檢索特定公共方法。
  • getDeclaredMethod(String name, Class<?>... parameterTypes)按名稱和參數類型檢索特定聲明的方法,無論訪問級別如何。

總結

從上面的示例中可以看出,以Declared為前綴的方法(如getDeclaredField)用于檢索所有字段或方法,無論其訪問級別如何。相比之下,沒有Declared的方法(如getField)僅檢索公共字段或方法。

反射允許繞過訪問控制檢查。用private或final修飾的字段和方法可以被訪問和修改,這破壞了封裝性。因此,應該謹慎使用。

責任編輯:趙寧寧 來源: 程序猿技術充電站
相關推薦

2020-03-26 09:18:54

高薪本質因素

2024-08-13 17:09:00

架構分庫分表開發

2020-08-04 10:56:09

進程線程協程

2020-07-16 09:02:45

aPaaS云計算aPaaS平臺

2025-10-30 00:55:00

AIAgent分布式

2023-11-09 08:41:25

DevOpsAIOps軟件

2021-01-18 13:05:52

Serverless Serverfull FaaS

2020-12-01 11:34:14

Elasticsear

2024-08-07 10:54:59

正則表達式Java RegexJava

2023-05-04 08:24:52

ChatGPT產品經理工業革命

2024-05-31 13:23:19

OceanBase單機版架構

2020-05-20 09:55:42

Git底層數據

2024-07-10 12:00:42

2025-08-28 02:15:00

CAPMySQL架構

2021-06-29 12:10:00

CRC校驗碼C語言

2025-10-27 05:00:00

2020-01-02 09:06:23

微服務數據框架

2020-07-16 07:30:15

數據庫SQL技術

2025-10-10 07:55:23

檢索搜索架構

2022-05-15 09:16:28

IPv6IPIP地址
點贊
收藏

51CTO技術棧公眾號

午夜精品福利久久久| 国产精品影视网| 亚洲第一天堂无码专区| 欧美日韩国产精品激情在线播放| 日本成人一区| 精品一区二区在线看| 欧美国产第一页| 9.1成人看片免费版| 欧美天堂一区二区| 亚洲午夜成aⅴ人片| 国产v亚洲v天堂无码| 久久久久久久久久影院| 日韩在线观看一区| 亚洲精品一区在线观看| 人人干人人干人人| 国产欧洲在线| 亚洲三级在线播放| 欧美中日韩一区二区三区| 99久久国产热无码精品免费| 免费看的黄色欧美网站| 欧美理论电影在线播放| 久久中文字幕精品| 色橹橹欧美在线观看视频高清| 欧美日韩三级视频| 中文字幕无码精品亚洲35| 国产丝袜在线| 亚洲国产成人午夜在线一区 | 日本在线视频一区二区| 亚洲成人一区二区| 欧美性受黑人性爽| jizz亚洲| 久久影院电视剧免费观看| 91入口在线观看| 一区二区三区www污污污网站| 中文亚洲欧美| 久久久久久久久久av| 国产成人综合在线视频| 成人国产精品一级毛片视频| 亚洲精品自拍视频| 中文字幕一二三区| 亚洲日本中文| 欧美日韩国产小视频| 噼里啪啦国语在线观看免费版高清版| 欧美性爽视频| 亚洲精品午夜久久久| 亚洲欧美日产图| 91亚洲精选| 国产精品女主播av| 色一情一区二区三区四区| 免费看男男www网站入口在线| 东方aⅴ免费观看久久av| 91超碰在线电影| 99精品在线视频观看| 国产麻豆日韩欧美久久| 成人午夜在线视频一区| 国产一区二区视频免费观看| 久久99久久99精品免视看婷婷| 国产精品久久久久久久久| 午夜一区二区三区四区| 日韩av电影免费观看高清完整版| 国产成人精品免高潮在线观看| 中文字字幕在线中文| 欧美亚洲自偷自偷| 国产精品免费小视频| 五月婷婷激情五月| 极品美女销魂一区二区三区 | 在线免费看91| 久久福利视频一区二区| 91久久精品日日躁夜夜躁国产| 国产精品高潮呻吟av| 国产一区二区在线观看免费| 5566中文字幕一区二区| 亚洲黄色小说网| 99久久er热在这里只有精品15| 精品一区二区不卡| 黄色电影免费在线看| 国产精品另类一区| 国产精品一二三在线观看| 牛牛在线精品视频| 欧美视频一区二区三区…| 成人在线观看a| 欧美性aaa| 欧美mv和日韩mv的网站| 国产精品高清无码在线观看| 日韩精品午夜| 欧美激情第99页| 精品国产xxx| 久久国产精品免费| 国产欧美精品一区二区三区| 欧美黄色小说| 亚洲三级在线观看| 中文字幕无码精品亚洲35| 成人性片免费| 精品电影一区二区| www..com.cn蕾丝视频在线观看免费版| 久久精品不卡| 97精品久久久| 亚洲中文字幕一区二区| 成人手机在线视频| 亚洲成人第一| 丰满大乳少妇在线观看网站| 色噜噜狠狠成人网p站| 不卡中文字幕在线观看| 欧美天堂社区| 久久亚洲国产成人| 日本高清不卡码| 国产精品18久久久| 日本精品免费| 黄色的视频在线观看| 欧美视频第二页| 午夜av免费看| 欧美一区亚洲| 国产精品夜色7777狼人| 天堂在线资源网| 中文字幕亚洲成人| 麻豆av免费在线| 1204国产成人精品视频| 色哟哟入口国产精品| 五月婷婷开心网| 国产精品白丝jk白祙喷水网站| 日韩福利影院| 毛片电影在线| 精品久久久久久久久久久久久久久 | 成人午夜视频在线观看免费| 欧美亚洲二区| 伊人久久免费视频| 国产www在线| www.亚洲人| www.激情网| 成人黄色在线| 国产午夜精品视频免费不卡69堂| 久久久久久久久艹| 国产精品自在在线| 大桥未久一区二区三区| 外国成人毛片| 色av吧综合网| 中文在线观看免费高清| 日本一区二区三级电影在线观看| 男人操女人逼免费视频| 果冻天美麻豆一区二区国产| 欧美激情精品久久久久久变态| 国产精品久久久久久免费| 中文字幕欧美激情一区| 91av俱乐部| 欧美码中文字幕在线| 日韩av大片免费看| 欧美女子与性| 91久久免费观看| 无码国产69精品久久久久同性| 亚洲女同同性videoxma| 久久综合一区| 高清不卡av| 在线亚洲午夜片av大片| www.久久网| 国产精品久久久久久久久久免费看 | 久久99九九99精品| 日韩人妻精品一区二区三区| 成人精品动漫| 国产性色av一区二区| 免费一级a毛片| 国产精品久久久久久久久搜平片| 久久黄色片网站| 久久久久久久久久久久久久久久久久| 成人天堂噜噜噜| 日本天码aⅴ片在线电影网站| 日韩欧美国产三级电影视频| 精品肉丝脚一区二区三区| 成人午夜精品在线| 国产 福利 在线| 欧美综合在线视频观看| 成人欧美在线视频| 欧美大片黄色| 亚洲精品视频中文字幕| 男操女视频网站| 亚洲欧美另类小说| 亚洲天堂2024| 日韩精品亚洲专区| 黄频视频在线观看| 国产精东传媒成人av电影| 日本国产高清不卡| 欧美另类极品| 亚洲电影免费观看高清完整版在线观看| 欧美一区二区激情视频| 国产精品无遮挡| 亚洲欧洲国产视频| 校园春色综合网| 超碰在线免费观看97| 欧美五码在线| 国产男女猛烈无遮挡91| 欧美黄色视屏| 中文字幕国产亚洲| 成人久久久精品国产乱码一区二区 | 国产激情一区| 91成人天堂久久成人| 尤物网在线观看| 精品第一国产综合精品aⅴ| 中文字幕免费视频观看| 一区二区三区蜜桃| 精品人妻无码一区二区三区换脸| 国内精品久久久久影院一蜜桃| 每日在线更新av| 一区二区三区四区日韩| 欧美精品二区三区四区免费看视频 | 狠狠色狠狠色综合日日五| 国精产品一区一区| 97aⅴ精品视频一二三区| 91看片破解版| 久久精品91| 久久99久久99精品| 婷婷精品进入| 日韩精品欧美专区| 国产毛片久久久| 91免费精品视频| 日韩不卡免费高清视频| 久久久久久亚洲精品中文字幕| 99se视频在线观看| 精品偷拍一区二区三区在线看| 国产农村妇女毛片精品久久| 色综合久久中文综合久久97| 欧美三根一起进三p| 国产精品视频在线看| 800av在线播放| 国产成都精品91一区二区三| 亚洲欧美视频二区| 日日摸夜夜添夜夜添精品视频| 日韩人妻无码精品久久久不卡| 天天综合久久| 亚洲一区二区三区免费看| 免费不卡中文字幕在线| 国模一区二区三区私拍视频| 日韩在线成人| 亚洲影院污污.| 成人午夜888| 国产伦精品一区二区三区精品视频| 欧美电影网址| 欧美专区在线视频| 51漫画成人app入口| 欧美日韩国产123| 综合久久2o19| 欧美另类第一页| 中文在线手机av| 免费91在线视频| 羞羞的视频在线看| 美女性感视频久久久| 1区2区在线观看| 久久99久国产精品黄毛片入口| 成年人黄视频在线观看| 久久久999精品免费| 日韩av中文| 久久久国产在线视频| www视频在线看| 欧美成人精品一区| 美洲精品一卡2卡三卡4卡四卡| 久久99久久99精品免观看粉嫩| 女同视频在线观看| 91精品国产精品| 欧美羞羞视频| 国产精品美女999| 成人乱码手机视频| 成人av资源网| 日韩激情毛片| 日韩国产欧美精品| 日韩伦理一区| 伊人天天久久大香线蕉av色| 久久综合电影| 无颜之月在线看| 99re国产精品| 欧美性猛交xxx乱久交| 久久国产麻豆精品| wwwxxxx在线观看| av电影在线观看完整版一区二区| jizz欧美性20| 中国色在线观看另类| 午夜爽爽爽男女免费观看| 一区二区三区高清在线| 中日韩精品视频在线观看| 在线亚洲+欧美+日本专区| 中文字幕人妻一区二区三区视频 | 亚洲国产视频直播| 国产乱国产乱老熟| 337p亚洲精品色噜噜| 欧美 中文字幕| 亚洲欧洲免费视频| 国产视频中文字幕在线观看| 久久免费视频观看| 视频在线日韩| 国产伦精品一区二区三区视频黑人| 日韩在线麻豆| 日韩不卡一二区| 美女国产一区| 日韩视频在线观看一区二区三区| 成人精品gif动图一区| 夜夜春很很躁夜夜躁| 一区二区在线观看不卡| 久久久久久久久久成人| 欧美一区二区在线播放| 青青青草网站免费视频在线观看| 日韩在线视频网| 绿色成人影院| 666精品在线| 日韩欧美网址| 黄色影院一级片| 国产传媒欧美日韩成人| 免费福利视频网站| 午夜亚洲国产au精品一区二区| 伊人网免费视频| 日韩成人中文电影| www国产在线观看| 国产精品久久久久av免费| 亚洲天堂av资源在线观看| 亚洲国产一区二区精品视频| 亚洲精品影院在线观看| 亚洲无在线观看| 久久综合色一综合色88| 麻豆changesxxx国产| 欧美日韩成人一区二区| 麻豆av电影在线观看| 欧美激情一级欧美精品| 福利一区三区| 日韩三级在线播放| 亚洲永久视频| 韩国三级hd两男一女| 亚洲精选在线视频| 亚洲一区二区天堂| 亚洲视屏在线播放| 亚洲最新无码中文字幕久久| 国产精品乱码| 欧美日韩亚洲一区| 久久综合在线观看| 国产精品久久久久aaaa| 国产精品第六页| 亚洲少妇激情视频| 日韩影片中文字幕| 欧美午夜精品理论片a级大开眼界| 亚洲第一毛片| 日本久久久久久久久久| 夜夜揉揉日日人人青青一国产精品| 国产精品久久久久久69| www.欧美三级电影.com| 成人在线视频免费| 午夜免费电影一区在线观看| 视频在线观看一区二区三区| 日韩精品无码一区二区三区久久久| 欧美日韩国产一区二区| 色在线免费视频| 日韩av电影在线播放| 久久99久久人婷婷精品综合 | 日韩毛片免费视频一级特黄| 亚洲春色在线视频| 麻豆成人久久精品二区三区红| 超碰人人干人人| 欧美日本视频在线| 美女国产在线| 999日本视频| 激情视频一区二区三区| 你懂的在线观看网站| 狠狠色狠色综合曰曰| 国产精品秘入口| 国产精品色悠悠| 亚洲高清影视| 无码人妻一区二区三区在线| 亚洲国产精品视频| 欧美3p视频在线观看| 国产精品丝袜白浆摸在线 | 在线观看国产小视频| 久久成人人人人精品欧| 都市激情亚洲欧美| 欧美视频免费播放| 国产精品乱码久久久久久| www.黄色av| 欧美一区二区三区图| 成人在线电影在线观看视频| 特级西西444www| 亚洲不卡在线观看| 成人在线免费观看| 亚洲一区二区三区四区在线播放 | 国产精品久久久久久久久动漫 | 日韩精品乱码久久久久久| 亚洲欧美成人网| gogo大尺度成人免费视频| 欧美久久在线观看| 国产人妖乱国产精品人妖| 国产色在线视频| 91精品国产高清久久久久久91| 日本精品三区| 日本不卡视频一区| 在线观看日韩av先锋影音电影院| 日本激情视频在线观看| 国产一级二级三级精品| 麻豆高清免费国产一区| 精品在线视频免费观看| 亚洲一区av在线播放| 亚洲乱码一区| 久久久久免费精品| 亚洲精选免费视频| porn亚洲| 久久久神马电影| 国产美女一区二区| 久久久精品视频网站| 欧美黄色片免费观看|