成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java反射-構(gòu)造函數(shù)

Juven / 1016人閱讀

摘要:使用反射可以檢視類的構(gòu)造函數(shù),并且能在運(yùn)行時(shí)實(shí)例化對(duì)象。示例如下數(shù)組包含一個(gè)類定義的所有構(gòu)造函數(shù)的對(duì)象實(shí)例。下面的示例代碼返回一個(gè)類的擁有一個(gè)類型參數(shù)的的構(gòu)造函數(shù)。如果沒有給定參數(shù)的構(gòu)造函數(shù),如例子中的,會(huì)拋出。

使用反射可以檢視類的構(gòu)造函數(shù),并且能在運(yùn)行時(shí)實(shí)例化對(duì)象。這些是通過java 類java.lang.reflect.Constructor實(shí)現(xiàn)的。本文將更詳細(xì)的介紹Constructor類。

獲得構(gòu)造函數(shù)對(duì)象

Constructor類可以通過class對(duì)象獲得。示例如下:

Class aClass = ...//obtain class object
Constructor[] constructors = aClass.getConstructors();

Constructor[]數(shù)組包含一個(gè)類定義的所有public構(gòu)造函數(shù)的對(duì)象實(shí)例。
如果你知道要訪問的構(gòu)造函數(shù)的精確參數(shù),有比使用獲得所有構(gòu)造函數(shù)更優(yōu)的方法。下面的示例代碼返回一個(gè)類的擁有一個(gè)String類型參數(shù)的public的構(gòu)造函數(shù)。

Class aClass = ...//obtain class object
Constructor constructor =        aClass.getConstructor(new Class[]{String.class});

如果沒有給定參數(shù)的構(gòu)造函數(shù),如例子中的String.class,會(huì)拋出NoSuchMethodException。

構(gòu)造函數(shù)的參數(shù)

你可以使用下方的代碼讀取一個(gè)構(gòu)造函數(shù)的參數(shù):

Constructor constructor = ... // obtain constructor - see above
Class[] parameterTypes = constructor.getParameterTypes();
使用構(gòu)造函數(shù)對(duì)象實(shí)例化對(duì)象

你可以使用下方的代碼實(shí)例化對(duì)象:

//get constructor that takes a String as argument
Constructor constructor = MyObject.class.getConstructor(String.class);
MyObject myObject = (MyObject)constructor.newInstance("constructor-arg1");

Constructor.newInstance()方法的參數(shù)是一個(gè)可變參數(shù)列表,但是你必須提供你要調(diào)用的構(gòu)造函數(shù)的精確參數(shù)。即如果參數(shù)類型是String,則必須提供一個(gè)String類別的值。(形參與實(shí)參必須一一對(duì)應(yīng))

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77254.html

相關(guān)文章

  • Java反射機(jī)制及API使用

    摘要:有一個(gè)參數(shù)的構(gòu)造方法姓名有多個(gè)參數(shù)的構(gòu)造方法姓名年齡這的執(zhí)行效率有問題,以后解決。私有構(gòu)造方法私有的構(gòu)造方法年齡反射獲取對(duì)象的三種方式通過對(duì)象名方法獲取通過類名方式獲得通過方法獲得在運(yùn)行期間,一個(gè)類,只有一個(gè)對(duì)象產(chǎn)生。 原文地址 反射簡單來說,就是動(dòng)態(tài)加載對(duì)象,并對(duì)對(duì)象進(jìn)行剖析。在Java中的反射機(jī)制是指在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道并獲取這個(gè)類的所有屬性和方法。 Java反...

    vibiu 評(píng)論0 收藏0
  • Java016-反射技術(shù)

    摘要:簡單說反射技術(shù)可以對(duì)一個(gè)類進(jìn)行解剖。反射的基本步驟獲得對(duì)象,就是獲取到指定的名稱的字節(jié)碼文件對(duì)象。所以一般情況下,被反射的類,內(nèi)部通常都會(huì)提供一個(gè)公有的空參數(shù)的構(gòu)造函數(shù)。 定義 其實(shí)就是動(dòng)態(tài)加載一個(gè)指定的類,并獲取該類中的所有的內(nèi)容。 而且將字節(jié)碼文件封裝成對(duì)象,并將字節(jié)碼文件中的內(nèi)容都封裝成對(duì)象,這樣便于操作這些成員。 簡單說:反射技術(shù)可以對(duì)一個(gè)類進(jìn)行解剖。 反射的好處: 大大的增強(qiáng)...

    Acceml 評(píng)論0 收藏0
  • Java反射詳細(xì)介紹

    摘要:通過反射獲取帶參無返回值成員方法并使用設(shè)置安全檢查,訪問私有構(gòu)造函數(shù)必須創(chuàng)建實(shí)例這種不行,注意和方法需要傳遞參數(shù)測(cè)試復(fù)制這個(gè)功能獲取私有方法,同樣注意和的區(qū)別賦予訪問權(quán)限調(diào)用方法。 反射 目錄介紹 1.反射概述 1.1 反射概述 1.2 獲取class文件對(duì)象的三種方式 1.3 反射常用的方法介紹 1.4 反射的定義 1.5 反射的組成 1.6 反射的作用有哪些 2.反射的...

    ingood 評(píng)論0 收藏0
  • 胖哥說反射 上卷

    摘要:可以通過提供的方法,獲取對(duì)象,具體如下方法返回值方法名稱方法說明返回一個(gè)指定參數(shù)的對(duì)象,該對(duì)象反映此對(duì)象所表示的類或接口的指定已聲明方法。 我來學(xué)習(xí)反射 1.為什么我們要學(xué)習(xí)反射? 通過反射機(jī)制可以獲取到一個(gè)類的完整信息,例如:所有(包含private修飾)屬性和方法,包信息等。 換句話說,Class本身表示一個(gè)類的本身,通過Class可以完整獲取一個(gè)類中的完整結(jié)構(gòu),包含此類中的方法定...

    hedzr 評(píng)論0 收藏0
  • Java筆記-Java反射(二)

    摘要:構(gòu)造器創(chuàng)建實(shí)例構(gòu)造器和方法的反射類不同點(diǎn)在于,可以創(chuàng)建實(shí)例,代碼如下所示。 上一篇文章介紹了反射的基本概念以及獲取類相關(guān)信息的反射API,這一章節(jié)主要記錄如何對(duì)類的成員進(jìn)行操作的相關(guān)反射API。 操作類成員的類 反射API中提供了如下接口,用于對(duì)類的成員進(jìn)行操作。 java.lang.reflect.Member 該接口主要有以下三個(gè)實(shí)現(xiàn)類,用于對(duì)類成員中的字段,方法和構(gòu)造器進(jìn)行操作...

    luckyw 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<