欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java反射機制的講解

 更新時間:2019年04月10日 14:06:44   作者:yangyongUestc  
今天小編就為大家分享一篇關于Java反射機制的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

Java中的反射提供了一種運行期獲取對象元信息的手段。即正常方法是通過一個類創(chuàng)建對象,反射方法就是通過一個對象找到一個類的信息。

Java的反射機制的實現(xiàn)要借助于4個類:class,Constructor,F(xiàn)ield,Method;

其中class代表的時類對 象,Constructor-類的構(gòu)造器對象,F(xiàn)ield-類的屬性對象,Method-類的方法對象。通過這四個對象我們可以粗略的看到一個類的各個組成部分。

Java反射的作用:

在Java運行時環(huán)境中,對于任意一個類,可以知道這個類有哪些屬性和方法。對于任意一個對象,可以調(diào)用它的任意一個方法。這種動態(tài)獲取類的信息以及動態(tài)調(diào)用對象的方法的功能來自于Java 語言的反射(Reflection)機制。

Java 反射機制主要提供了以下功能

  • 在運行時判斷任意一個對象所屬的類。
  • 在運行時構(gòu)造任意一個類的對象。
  • 在運行時判斷任意一個類所具有的成員變量和方法。
  • 在運行時調(diào)用任意一個對象的方法。

反射的常用類和函數(shù):Java反射機制的實現(xiàn)要借助于4個類:Class,Constructor,F(xiàn)ield,Method;

其中class代表的是類對象,Constructor-類的構(gòu)造器對象,F(xiàn)ield-類的屬性對象,Method-類的方法對象,通過這四個對象我們可以粗略的看到一個類的各個組成部分。其中最核心的就是Class類,它是實現(xiàn)反射的基礎,它包含的方法我們在第一部分已經(jīng)進行了基本的闡述。應用反射時我們最關心的一般是一個類的構(gòu)造器、屬性和方法,下面我們主要介紹Class類中針對這三個元素的方法:

1、得到構(gòu)造器的方法

  • Constructor getConstructor(Class[] params) -- 獲得使用特殊的參數(shù)類型的公共構(gòu)造函數(shù),
  • Constructor[] getConstructors() -- 獲得類的所有公共構(gòu)造函數(shù)
  • Constructor getDeclaredConstructor(Class[] params) -- 獲得使用特定參數(shù)類型的構(gòu)造函數(shù)(與接入級別無關)
  • Constructor[] getDeclaredConstructors() -- 獲得類的所有構(gòu)造函數(shù)(與接入級別無關)

2、獲得字段信息的方法

  • Field getField(String name) -- 獲得命名的公共字段
  • Field[] getFields() -- 獲得類的所有公共字段
  • Field getDeclaredField(String name) -- 獲得類聲明的命名的字段
  • Field[] getDeclaredFields() -- 獲得類聲明的所有字段

3、獲得方法信息的方法

  • Method getMethod(String name, Class[] params) -- 使用特定的參數(shù)類型,獲得命名的公共方法
  • Method[] getMethods() -- 獲得類的所有公共方法
  • Method getDeclaredMethod(String name, Class[] params) -- 使用特寫的參數(shù)類型,獲得類聲明的命名的方法
  • Method[] getDeclaredMethods() -- 獲得類聲明的所有方法

在程序開發(fā)中使用反射并結(jié)合屬性文件,可以達到程序代碼與配置文件相分離的目的。如果我們想要得到對象的信息,一般需要“引入需要的‘包.類'的名稱——通過new實例化——取得實例化對象”這樣的過程。使用反射就可以變成“實例化對象——getClass()方法——得到完整的‘包.類'名稱”這樣的過程。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接

相關文章

  • Mybatis-Plus Wrapper條件構(gòu)造器超詳細使用教程

    Mybatis-Plus Wrapper條件構(gòu)造器超詳細使用教程

    接口方法的參數(shù)中,會出現(xiàn)各種 Wrapper,比如 queryWrapper、updateWrapper 等。Wrapper 的作用就是用于定義各種各樣的條件(where)。所以不管是查詢、更新、刪除都會用到Wrapper
    2022-03-03
  • Java中十六進制和十進制之間互相轉(zhuǎn)換代碼示例

    Java中十六進制和十進制之間互相轉(zhuǎn)換代碼示例

    這篇文章主要給大家介紹了關于Java中十六進制和十進制之間互相轉(zhuǎn)換的相關資料,我們項目過程中總是要用到十進制與十六進制相互轉(zhuǎn)換的方法,需要的朋友可以參考下
    2023-07-07
  • Java redisTemplate阻塞式處理消息隊列

    Java redisTemplate阻塞式處理消息隊列

    用redis中的List可以實現(xiàn)隊列,這樣可以用來做消息處理和任務調(diào)度的隊列。因此,本文將主要為大家介紹如何利用redisTemplate處理消息隊列,感興趣的小伙伴可以了解一下
    2021-12-12
  • SpringBoot中實現(xiàn)加載遠程配置的代碼示例

    SpringBoot中實現(xiàn)加載遠程配置的代碼示例

    本文章將通過結(jié)合consul config來講解在springboot中如何加載遠程配置:通過consul config加載consul server中存儲的配置,需要的朋友可以參考下
    2023-06-06
  • java中for和forEach的速度比較實例Demo

    java中for和forEach的速度比較實例Demo

    for循環(huán)中的循環(huán)條件中的變量只求一次值,而foreach語句是java5新增,在遍歷數(shù)組、集合的時候,foreach擁有不錯的性能,這篇文章主要給大家介紹了關于java中for和forEach速度比較的相關資料,需要的朋友可以參考下
    2021-08-08
  • Jenkins 關閉和重啟詳細介紹及實現(xiàn)

    Jenkins 關閉和重啟詳細介紹及實現(xiàn)

    這篇文章主要介紹了Jenkins的關閉、重啟的相關資料,用jar -jar jenkins.war來啟動jenkins服務器,那么我們?nèi)绾侮P閉或者重啟jenkins服務器呢,這里就給出實現(xiàn)的方法,需要的朋友可以參考下
    2016-11-11
  • Java嵌套for循環(huán)的幾種常見優(yōu)化方案

    Java嵌套for循環(huán)的幾種常見優(yōu)化方案

    這篇文章主要給大家介紹了關于Java嵌套for循環(huán)的幾種常見優(yōu)化,在Java中優(yōu)化嵌套for循環(huán)可以通過以下幾種方式來提高性能和效率,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • Java 線程的優(yōu)先級(setPriority)案例詳解

    Java 線程的優(yōu)先級(setPriority)案例詳解

    這篇文章主要介紹了Java 線程的優(yōu)先級(setPriority)案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • java小數(shù)位的例子

    java小數(shù)位的例子

    在java中要保留數(shù)字小數(shù)位我們有常用的四種方法,分別為:四舍五入,DecimalFormat,format,String .format與struts標簽操作實現(xiàn),下面給出例子
    2013-11-11
  • Springboot使用put、delete請求報錯405的處理

    Springboot使用put、delete請求報錯405的處理

    這篇文章主要介紹了Springboot使用put、delete請求報錯405的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論