溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在java中利用反射創(chuàng)建代碼

發(fā)布時(shí)間:2021-01-27 15:25:48 來源:億速云 閱讀:252 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)怎么在java中利用反射創(chuàng)建代碼,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

1.實(shí)例說明

new 一個(gè)對(duì)象是實(shí)例,可以把這個(gè)new出來的對(duì)象叫做實(shí)例,說白了就是這個(gè)new出來的“東西”,叫它對(duì)象也可以,叫它實(shí)例也可以,對(duì)象和實(shí)例在這個(gè)角度上來講是等價(jià)的。

2.創(chuàng)建空參的實(shí)例

使用Class對(duì)象的newInstance()方法來創(chuàng)建Class對(duì)象對(duì)應(yīng)類的實(shí)例。

//原始:new的時(shí)候,先根據(jù)被new的類的名稱找尋該類的字節(jié)碼文件,并加載進(jìn)內(nèi)存,

//并創(chuàng)建該字節(jié)碼文件對(duì)象,并接著創(chuàng)建該字節(jié)文件對(duì)應(yīng)的Person對(duì)象。

Person p = new Person();
//反射:找尋該類的名稱,并加載進(jìn)內(nèi)存,并產(chǎn)生Class對(duì)象
//在產(chǎn)生類的對(duì)象
Strint className = "com.example.hgx.Person";
Class clazz = Class.forName(className);
Object obj = clazz.newInstance();

3.創(chuàng)建帶參數(shù)的實(shí)例

這時(shí)要通過Class對(duì)象獲取指定的Constructor對(duì)象,再調(diào)用Constructor對(duì)象的newInstance()方法來創(chuàng)建實(shí)例。

class Person {
    public String name;
    private int age;
    public Person(String name, int age) {
      this.name = name;
      this.age = age;
    }
  }
//獲取Person類帶一個(gè)(String,int)參數(shù)的構(gòu)造器
Strint className = "com.example.hgx.Person";
Class clazz = Class.forName(className);
Constructor constructor = clazz.getConstructor(String.class,int.class);

內(nèi)容擴(kuò)展:

反射定義

反射機(jī)制指的是程序在運(yùn)行時(shí)能夠獲取自身的信息。在java中,只要給定類的名字,那么就可以通過反射機(jī)制來獲得類的所有屬性和方法。

反射的作用

  • 在運(yùn)行時(shí)判斷任意一個(gè)對(duì)象所屬的類。

  • 在運(yùn)行時(shí)判斷任意一個(gè)類所具有的成員變量和方法。

  • 在運(yùn)行時(shí)任意調(diào)用一個(gè)對(duì)象的方法

  • 在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對(duì)象

看完上述內(nèi)容,你們對(duì)怎么在java中利用反射創(chuàng)建代碼有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI