第七色在线视频,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 邏輯清晰
  • 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)

    查看全部
  • 靜態(tài)成員基本數(shù)據(jù)類(lèi)型不是對(duì)象

    類(lèi)是java.lang.Class類(lèi)的實(shí)例對(duì)象

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

    2019-07-12

  • Class?c2=String.class;
    System.out.println(c2.getName());
    System.out.println(c2.getSimpleName());//不包含包名的類(lèi)的名稱(chēng)

    結(jié)果:https://img1.sycdn.imooc.com//5d245a2d0001ab2f03620083.jpg


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

    2019-07-09

  • JAVA-Reflect
    • Class類(lèi)的使用

    • 動(dòng)態(tài)加載類(lèi)

    • 方法的反射

    • 成員變量、構(gòu)造函數(shù)的反射

    • 方法反射的基本操作

    • 集合泛型是編譯時(shí)的攔截,可以通過(guò)方法反射調(diào)用繞過(guò)編譯

    • Java類(lèi)加載機(jī)制


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

    2019-07-09

  • 方法必須由名稱(chēng)和參數(shù)列表來(lái)決定
    查看全部
  • Java通過(guò)反射了解集合泛型的本質(zhì)

    知識(shí)點(diǎn)1:通過(guò)Class,Method認(rèn)識(shí)泛型的本質(zhì),反射的操作都是編譯之后的操作。

    集合泛型:防止錯(cuò)誤輸入的,只在編譯階段有效,編譯之后該泛型就無(wú)效了。

    如果對(duì)一個(gè)集合使用String泛型,那么添加20,就會(huì)出錯(cuò),通過(guò)創(chuàng)建兩個(gè)ArrayList對(duì)象,一個(gè)加泛型,一個(gè)不加泛型,結(jié)果驗(yàn)證加泛型的類(lèi)類(lèi)型和不加泛型的類(lèi)類(lèi)型是相等的。

    結(jié)論:c1==c2結(jié)果返回true,說(shuō)明編譯之后集合的泛型是去泛型化的。

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

    案例:通過(guò)方法的反射來(lái)操作,繞過(guò)編譯,往集合中添加其他類(lèi)型數(shù)據(jù)。

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


    查看全部
  • args 是 使用 命令行的參數(shù)列表 形如:? java? 指定的程序名 參數(shù)?

    args[0]即 參數(shù)列表的 第一個(gè)參數(shù)?

    "Word".equals(args[0])?即判斷?第一個(gè)參數(shù)是否等于?word

    查看全部
  • Java方法反射的基本操作

    知識(shí)點(diǎn)1:方法反射可以完成的功能

    invoke(對(duì)象,參數(shù)列表):獲取某個(gè)特定方法,方法對(duì)象的方法,它是有返回值的,如果方法返回值為void,則該方法返回值為null,如果方法有具體返回值,則該方法的返回值就是具體返回值。

    getMethod(name):獲取沒(méi)有參數(shù)的public方法對(duì)象,name就是方法的名稱(chēng),這是方法對(duì)象調(diào)用的invoke(A類(lèi)對(duì)象)或者invoke(A類(lèi)對(duì)象,new Object[]{})。

    getMethod(name,parameterTypes):獲取public方法,name就是方法的名稱(chēng),parameterTypes智能提示里是Class...parameterTypes代表是可變參數(shù),所以這里可以傳數(shù)組(new Class[]{int.class}),返回值類(lèi)型是Method對(duì)象。

    getDeclaredMethod(name,paramterTypes):獲得自己聲明的方法,name就是方法的名稱(chēng),parameterTypes智能提示里是Class...parameterTypes代表是可變參數(shù),所以這里可以傳數(shù)組(new Class[]{int.class},也可以是int.class這樣),返回值類(lèi)型是Method對(duì)象,沒(méi)使用反射時(shí)可以直接使用A對(duì)象調(diào)用,使用反射就需要調(diào)用方法對(duì)象的invoke(obj,obj...parameter),obj為A對(duì)象,obj...parameter為Object[]{10,20})。

    案例:獲取某一方法,再進(jìn)行方法反射的操作。

    描述:創(chuàng)建一個(gè)MethodDemo1類(lèi),獲取某一個(gè)方法對(duì)象,通過(guò)方法反射來(lái)操作MethodDemo1,并且提供一個(gè)A類(lèi),A類(lèi)中有兩個(gè)同名,但方法類(lèi)型不一樣的方法,。


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

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





    查看全部
  • 成員變量的反射和構(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




    查看全部
  • 獲取類(lèi)的信息,

    1.通過(guò)參數(shù)(對(duì)象)獲取類(lèi)的類(lèi)類(lèi)型,然后獲取類(lèi)的信息

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

    2019-06-25

  • class 類(lèi)

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

    2019-06-25

  • getName

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

    2019-06-25

  • double.class? 是數(shù)據(jù)類(lèi)型的類(lèi)類(lèi)型

    Double.class 是封裝類(lèi)的類(lèi)類(lèi)型

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

    2019-06-25

  • int.class int 的類(lèi)類(lèi)型

    String.class string類(lèi)的類(lèi)類(lèi)型? String類(lèi)字節(jié)碼,也就是編譯后的字節(jié)碼

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

    2019-06-25

  • 知識(shí)點(diǎn)1:類(lèi)里面的標(biāo)識(shí)符都有類(lèi)類(lèi)型。

    基本的數(shù)據(jù)類(lèi)型對(duì)應(yīng)的類(lèi)類(lèi)型

    例如:Class c1=int.class;這就是int的類(lèi)類(lèi)型,Class c2=String.class;String類(lèi)的類(lèi)類(lèi)型,Class c3=double.class;和Class c4=Double.class;是完全不同的,Class c5=void.class,也就是類(lèi)里面的聲明的都有類(lèi)類(lèi)型。

    Class實(shí)例對(duì)象的方法:

    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)

    getMethods():獲取類(lèi)的所有public函數(shù)(包括父類(lèi)繼承的函數(shù)),返回的是Method類(lèi)型的數(shù)組。

    getDeclaredMethod():獲取所有該類(lèi)自己聲明的方法,不問(wèn)訪問(wèn)權(quán)限,返回的是Method類(lèi)型的數(shù)組。

    Method類(lèi):提供了getName()得到方法名。提供了getReturnType()得到方法返回值類(lèi)類(lèi)型(比如返回值為String,則函數(shù)返回的是class java.lang.String,如果是int,函數(shù)返回的是class int),可以通過(guò)Class的getName返回返回值的名字而不帶class。提供了getParameterTypes()得到的是參數(shù)列表的類(lèi)型的類(lèi)類(lèi)型(比如參數(shù)列表中存放的是int、int類(lèi)型,則該方法返回的是int.class和int.class),這里也可以使用Class的getName返回參數(shù)列表的類(lèi)型,而不帶.class。

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

    知識(shí)點(diǎn)2:

    Class類(lèi)的基本API操作

    案例:獲取一個(gè)類(lèi)的全部信息,包括類(lèi)的成員函數(shù)、成員變量。

    描述:創(chuàng)建一個(gè)工具類(lèi)名稱(chēng)為ClassUtil,并且有一個(gè)靜態(tài)方法,參數(shù)為Object類(lèi)型參數(shù),首先獲取該對(duì)象的類(lèi)類(lèi)型,這里使用第二種獲取方式,傳遞的是哪個(gè)對(duì)象,Class對(duì)象就是該對(duì)象類(lèi)類(lèi)型(這個(gè)功能是由native聲明的一個(gè)方法實(shí)現(xiàn)的,java中jni就是做本地方法的,該方法是由java來(lái)聲明,用C語(yǔ)言來(lái)實(shí)現(xiàn)),萬(wàn)事萬(wàn)物皆對(duì)象,方法同樣是對(duì)象。




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

    2020-03-12

舉報(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)的支持!