第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

反射——Java高級(jí)開(kāi)發(fā)必須懂的

難度入門(mén)
時(shí)長(zhǎng) 1小時(shí)20分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.67
760人評(píng)價(jià) 查看評(píng)價(jià)
9.9 內(nèi)容實(shí)用
9.6 簡(jiǎn)潔易懂
9.5 邏輯清晰
  • 成員變量也是對(duì)象

    getFields()方法獲取的是所有的public的成員變量的信息 返回Field[]

    java.lang.reflect.Field 封裝了關(guān)于成員變量的操作

    getDeclaredFields()獲取的是該類(lèi)自己聲明的成員變量的信息

    getType()獲取成員變量的類(lèi)類(lèi)型

    getName()獲取成員變量的名稱(chēng)

    構(gòu)造函數(shù)也是對(duì)象

    getConstructors()獲取所有的public的構(gòu)造函數(shù),返回Constructor[]

    getDeclaredConstructors()得到所有構(gòu)造函數(shù),包括所有訪問(wèn)修飾符。

    java.lang.Constructor中封裝了構(gòu)造函數(shù)的信息

    getName()獲取構(gòu)造函數(shù)名稱(chēng)

    getParameterTypes()獲取參數(shù)列表的類(lèi)類(lèi)型,返回Class[]






    查看全部
  • getName():獲取類(lèi)類(lèi)型的具體名稱(chēng)。如果是類(lèi)形式的,名稱(chēng)為類(lèi)的全稱(chēng),例如:c1的類(lèi)類(lèi)型名稱(chēng)為int,c2的類(lèi)類(lèi)型名稱(chēng)為java.lang.String。

    getSimpleName():不包含包名的類(lèi)的名稱(chēng)。(例如:c2的類(lèi)類(lèi)型名稱(chēng)為String)

    void關(guān)鍵字 都存在類(lèi)型

    Method類(lèi)

    一個(gè)成員方法就是一個(gè)Method對(duì)象

    getMethod()方法獲取的是所有的public的函數(shù),包括父類(lèi)繼承而來(lái)的方法

    getDeclaredMethods()獲取的是所有該類(lèi)自己聲明的方法,不問(wèn)訪問(wèn)權(quán)限

    getReturnType();獲得方法返回值類(lèi)的類(lèi)類(lèi)型

    getParameterTypes();獲得參數(shù)列表的類(lèi)類(lèi)的類(lèi)類(lèi)型 Class[]

    查看全部
    0 采集 收起 來(lái)源:Java 獲取方法信息

    2019-10-14

  • Class.forName("類(lèi)的全稱(chēng)")

    不僅表示了類(lèi)的類(lèi)類(lèi)型,還表示了動(dòng)態(tài)加載類(lèi)

    編譯時(shí)刻加載類(lèi)是靜態(tài)加載類(lèi)、運(yùn)行時(shí)刻加載類(lèi)是動(dòng)態(tài)加載類(lèi)

    描述:在 main 函數(shù)中,有一個(gè) String args[] 參數(shù),這就表示在執(zhí)行某 .class 文件時(shí),可以對(duì) main 函數(shù)傳字符串參數(shù)(例如:命令行中:java OfficeBetter Excel,傳給主函數(shù)的參數(shù)就是Excel,如果傳多個(gè)參數(shù),參數(shù)用空格隔開(kāi)),Office類(lèi)中使用了兩個(gè)類(lèi)(沒(méi)有提供這兩個(gè)類(lèi)),并調(diào)用其相應(yīng)的方法,然后進(jìn)行編譯報(bào)錯(cuò),提示找不到這兩個(gè)類(lèi),我們只提供了Word類(lèi)和相應(yīng)方法,并對(duì)它進(jìn)行編譯(這是因?yàn)橹皇褂肳ord的功能),這時(shí)候再對(duì)Office這個(gè)類(lèi)進(jìn)行編譯,這時(shí)候只報(bào)Excel找不到的錯(cuò)誤,現(xiàn)在核心問(wèn)題是只想使用Word,而不使用Excel這個(gè)類(lèi),但是報(bào)錯(cuò)(這樣就不能運(yùn)行,導(dǎo)致不能使用Word的功能),因?yàn)閚ew 對(duì)象是靜態(tài)加載類(lèi)的方式,在編譯時(shí)刻就需要加載所有可能使用到的類(lèi),但實(shí)際應(yīng)用希望用到哪個(gè)類(lèi)加載哪個(gè)類(lèi),這樣就不會(huì)在編譯時(shí)報(bào)錯(cuò),并且可以運(yùn)行,所以可以通過(guò)動(dòng)態(tài)加載類(lèi)來(lái)解決該問(wèn)題,通過(guò)Class.forName(args[0])動(dòng)態(tài)加載這個(gè)類(lèi)的Class實(shí)例對(duì)象,通過(guò)傳入一個(gè)類(lèi)的路徑,即使沒(méi)有這個(gè)類(lèi),編譯時(shí)刻也不會(huì)報(bào)錯(cuò),但運(yùn)行時(shí)刻會(huì)報(bào)錯(cuò),緊接著就可以通過(guò)Office的類(lèi)類(lèi)型創(chuàng)建Word對(duì)象,如果強(qiáng)制轉(zhuǎn)換為Excel類(lèi)型,但是加載時(shí)卻是Word類(lèi),就可能發(fā)生錯(cuò)誤,這時(shí)就需要給Word和Excel指定一個(gè)標(biāo)準(zhǔn),也就是創(chuàng)建一個(gè)接口,并聲明相應(yīng)方法,并且讓W(xué)ord和Excel實(shí)現(xiàn)這個(gè)接口,如果傳入的參數(shù)是Excel,只需要再創(chuàng)建一個(gè)Excel并實(shí)現(xiàn)該接口,這樣就不用在主程序中修改類(lèi)型了,實(shí)際應(yīng)用中功能類(lèi)通常使用動(dòng)態(tài)加載類(lèi)。

    查看全部
  • 類(lèi)是對(duì)象,類(lèi)是java.lang.Class類(lèi)的實(shí)例對(duì)象

    Class類(lèi)的實(shí)例對(duì)象表示方式:

    1、隱含的靜態(tài)成員變量class

    Class c1=Foo.class;

    2、類(lèi)的getClass方法

    Foo?foo1=new Foo();

    Class c1=foo1.getClass();

    c1,c2表示了Foo類(lèi)的類(lèi)類(lèi)型(class type)

    不管c1,c2都代表了Foo類(lèi)的類(lèi)類(lèi)型,一個(gè)類(lèi)只可能是Class類(lèi)的一個(gè)實(shí)例對(duì)象

    3、Class.forName("類(lèi)全名")

    Class c3=Class.forName("com.Foo");

    通過(guò)類(lèi)類(lèi)型創(chuàng)建該類(lèi)的對(duì)象實(shí)例

    Foo foo=(Foo) c1.newInstance();

    注意:如果c1是A類(lèi)的Class實(shí)例,則創(chuàng)建的是A類(lèi)的對(duì)象,如果是B類(lèi)的Class實(shí)例,則創(chuàng)建的是B類(lèi)的對(duì)象,并且需要做強(qiáng)制類(lèi)型轉(zhuǎn)換。

    默認(rèn)需要該類(lèi)有無(wú)參數(shù)的構(gòu)造方法。


    查看全部
    0 采集 收起 來(lái)源:Class類(lèi)的使用

    2019-10-14

  • 方法反射的操作


    查看全部
  • 類(lèi)的靜態(tài)加載與動(dòng)態(tài)加載

    查看全部
  • 成員變量的反射和構(gòu)造函數(shù)的反射

    知識(shí)點(diǎn)1:成員變量的反射

    java.lang.reflect.Field:成員變量也是對(duì)象,F(xiàn)ield類(lèi)封裝了關(guān)于成員變量的操作。

    getFields():獲取該類(lèi)類(lèi)型所有的public的成員變量信息,返回值為Field類(lèi)型的數(shù)組。

    getDeclaredFields():獲取所有自己聲明的成員變量信息(不區(qū)分訪問(wèn)修飾符的限制),返回值為Field類(lèi)型的數(shù)組。

    getType():獲取成員變量類(lèi)型的類(lèi)類(lèi)型,返回值類(lèi)型為Class。

    getName():如果是成員變量類(lèi)型調(diào)用該方法,則返回該類(lèi)型的名字,如果是成員變量調(diào)用該方法,則返回成員變量名字。

    https://img1.sycdn.imooc.com//5d120f2300011ab310850596.jpg

    知識(shí)點(diǎn)2:構(gòu)造函數(shù)的反射

    java.lang.Constructor:構(gòu)造函數(shù)也是對(duì)象,Constructor中封裝了構(gòu)造函數(shù)的信息。

    getConstructors():類(lèi)類(lèi)型調(diào)用的方法,獲取所有公有的構(gòu)造方法,返回值類(lèi)型為Constructor數(shù)組。

    getDeclaredConstructors():類(lèi)類(lèi)型調(diào)用的方法,獲取所有自己聲明的構(gòu)造方法(不區(qū)分訪問(wèn)修飾符),返回值類(lèi)型為Constructor數(shù)組。

    getName():Constructor類(lèi)的方法,獲取構(gòu)造方法名(這里為類(lèi)路徑+構(gòu)造方法名)。

    getParameterTypes():Constructor對(duì)象的方法,獲取構(gòu)造函數(shù)的參數(shù)列表,得到的是參數(shù)列表的類(lèi)類(lèi)型,返回值為Class類(lèi)型數(shù)組。

    https://img1.sycdn.imooc.com//5d12132600012e1312210580.jpg


    查看全部
  • 今天的筆記

    http://img1.sycdn.imooc.com//5d9072a80001f2fb09740442.jpg

    查看全部
    0 采集 收起 來(lái)源:Java 獲取方法信息

    2019-09-29

    1. 靜態(tài)成員、普通數(shù)據(jù)類(lèi)型不是對(duì)象。類(lèi)是java.lang.Class的對(duì)象。

    2. 任何一個(gè)類(lèi)都是Class的實(shí)例對(duì)象,這個(gè)實(shí)例對(duì)象有三種表示方式

      第一種表示方式????任何一個(gè)類(lèi)都有一個(gè)隱含的靜態(tài)成員變量class

      ????Class c1=Foo.class;

      第二種表達(dá)方式????已經(jīng)知道該類(lèi)的對(duì)象通過(guò)getClass方法

    ? ? ? Class c2=foo1.getClass();

    第三種表達(dá)方式

    ????Class c3=null;

    ? ?c3=Class.forName("路徑 ? 包.類(lèi)名");

    c1,c2,c3表示了Foo類(lèi)的類(lèi)類(lèi)型(class type)

    我們完全可以通過(guò)類(lèi)的類(lèi)類(lèi)型創(chuàng)建該類(lèi)的對(duì)象實(shí)例

    Foo foo=(Foo)c1.newInstance();

    查看全部
    0 采集 收起 來(lái)源:Class類(lèi)的使用

    2019-09-29

  • aaaaa

    查看全部
    0 采集 收起 來(lái)源:Class類(lèi)的使用

    2019-09-23

  • new是靜態(tài)加載類(lèi),在編譯的時(shí)候把可能用到的類(lèi)全都加載進(jìn)來(lái)。

    查看全部
  • java中集合的泛型,是防止錯(cuò)誤輸入的,只在編譯階段有效,繞過(guò)編譯就無(wú)效了


    總結(jié):反射可以繞過(guò)編譯

    查看全部
  • 方法的反射

    Class c=a1.getClass()

    獲取方法

    Method m=c.getDeclaredMethod(name,parameterTypes);

    方法的反射操作

    m.invoke(obj,args);


    對(duì)于無(wú)參的方法

    Method m2=c.getMethod("print");

    m2.invoke(a1,new Object[]{});


    查看全部
  • 構(gòu)造函數(shù)也是對(duì)象

    java.lang.Constructor中封裝了構(gòu)造函數(shù)的信息

    getConstructors獲取所有的public的構(gòu)造函數(shù)

    getDeclaredConstuctors得到所有的構(gòu)造函數(shù)


    獲取構(gòu)造函數(shù)的參數(shù)列表 ?得到的是參數(shù)列表的類(lèi)類(lèi)型

    Class[] paramTypes=constructor.getParameterTypes();


    查看全部
  • 成員變量也是對(duì)象

    java.lang.reflect.Field

    Field類(lèi)封裝了關(guān)于成員變量的操作

    getFields()方法獲取的是所有public的成員變量的信息

    getDeclaredFields獲取的是該類(lèi)自己聲明的成員變量的信息


    得到成員變量的類(lèi)型的類(lèi)類(lèi)型

    Class fieldType=field.getType();


    查看全部

舉報(bào)

0/150
提交
取消
課程須知
童鞋們,學(xué)習(xí)本課程前需要熟悉Java面向?qū)ο蟮乃枷?,并能掌握J(rèn)ava IO輸入輸出流、集合和泛型等知識(shí)??蓞⒖寄秸n網(wǎng)Java入門(mén)的一、二、三季以及我的文件我做主——Java IO流課程。
老師告訴你能學(xué)到什么?
1、能夠理解并應(yīng)用反射機(jī)制。 2、能夠了解反射機(jī)制在集合泛型中的應(yīng)用。 3、有利于更好的學(xué)習(xí)框架等Java高級(jí)技術(shù)。

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買(mǎi)該課程,無(wú)需重復(fù)購(gòu)買(mǎi),感謝您對(duì)慕課網(wǎng)的支持!