Java基于反射機(jī)制獲取不同類的方法-創(chuàng)新互聯(lián)

這篇文章主要介紹了Java基于反射機(jī)制獲取不同類的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計(jì)公司的優(yōu)秀設(shè)計(jì)人員和策劃人員組成的一個(gè)具有豐富經(jīng)驗(yàn)的團(tuán)隊(duì),其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設(shè)計(jì)師、平面廣告設(shè)計(jì)師、網(wǎng)絡(luò)營銷人員及形象策劃。承接:網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)頁設(shè)計(jì)制作、網(wǎng)站建設(shè)與維護(hù)、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫開發(fā),以高性價(jià)比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺(tái)等全方位的服務(wù)。

什么是反射機(jī)制

Java的反射(reflection)機(jī)制是指在程序的運(yùn)行狀態(tài)中,可以構(gòu)造任意一個(gè)類的對(duì)象,可以了解任意一個(gè)對(duì)象所屬的類,可以了解任意一個(gè)類的成員變量和方法,可以調(diào)用任意一個(gè)對(duì)象的屬性和方法。這種動(dòng)態(tài)獲取程序信息以及動(dòng)態(tài)調(diào)用對(duì)象的功能稱為Java語言的反射機(jī)制。反射被視為動(dòng)態(tài)語言的關(guān)鍵(在運(yùn)行階段可以改變其結(jié)構(gòu))

特點(diǎn):

1、極大的提高了程序的靈活性和擴(kuò)展性,降低模塊的耦合性,提高自身的適應(yīng)能力

2、通過反射機(jī)制可以讓程序創(chuàng)建和控制任何類的對(duì)象,無需提前硬編碼目標(biāo)類

3、能夠在運(yùn)行時(shí)構(gòu)造一個(gè)類的對(duì)象、判斷一個(gè)類所具有的成員變量和方法、調(diào)用一個(gè)對(duì)象的方法(包括 private),可能會(huì)有安全隱患

4、是構(gòu)建框架技術(shù)的基礎(chǔ)所在,使用反射可以避免將代碼寫死在框架中

5、包含動(dòng)態(tài)類型,而 JVM 不能對(duì)動(dòng)態(tài)代碼優(yōu)化,所以效率會(huì)比較低

在Java中可以通過Reflection APIs在運(yùn)行時(shí)動(dòng)態(tài)生成class實(shí)體,通過Constructor創(chuàng)建類實(shí)例、Field訪問成員屬性、Method調(diào)用方法

Class類

在Java中,每個(gè) class 都有一個(gè)相應(yīng)的 Class 對(duì)象。在編譯完成后,在生成的.class文件中,會(huì)產(chǎn)生一個(gè)Class對(duì)象,用于表示這個(gè)類的類型信息。

特點(diǎn):

1、由系統(tǒng)創(chuàng)建Class類

2、同一個(gè)類的實(shí)例指向同一個(gè)Class對(duì)象

3、通過Class可以完整的得到一個(gè)類所有被加載的結(jié)構(gòu)

4、Class類是Java反射的基礎(chǔ)

獲得Class類的方法:

public class MyReflect {
  public static void main(String[] args) throws ClassNotFoundException {
    Teacher t = new Teacher();
    // 1、通過對(duì)象獲得
    Class c1 = t.getClass();
    // 2、forName + 全限定名 獲得
    Class c2 = Class.forName("reflect.Teacher");
    // 3、通過類名獲得
    Class c3 = Teacher.class;
    // 4、基本數(shù)據(jù)類型的Type屬性獲得
    Class c4 = Double.TYPE;
    // 5、通過子類的Class對(duì)象獲得
    Class c5 = c1.getSuperclass();
  }
}
class Person {
  String name;
  public Person() {
  }
}
class Teacher extends Person {
  public Teacher() {
  }
}

當(dāng)前文章:Java基于反射機(jī)制獲取不同類的方法-創(chuàng)新互聯(lián)
當(dāng)前地址:http://bm7419.com/article42/dpocec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、企業(yè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作、營銷型網(wǎng)站建設(shè)網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)