反射

1.對(duì)象有編譯類型和運(yùn)行類型

Object obj = new Date();

編譯類型:Object ? ? ? 運(yùn)行類型(obj對(duì)象的真實(shí)類型):Date

需求:根據(jù)對(duì)象obj調(diào)用Date類種的一個(gè)方法匾效,toLocaleString,如何來做波丰?
obj.toLcaleString()代碼在編譯階段去編譯類型Object中檢查是否有該方法宛畦,若沒有惹挟,編譯失敗滔岳。身隐。

解決方案:

1:強(qiáng)制轉(zhuǎn)換obj為Date類型(必須知道obj的真實(shí)類型)

2:在不知道obj的真實(shí)類型的情況下邀泉,就用反射。胚迫。

那什么是反射喷户?反射是 得到元數(shù)據(jù)的行為。即Class是對(duì)一切類功能行為和狀態(tài)的抽象

元數(shù)據(jù):metadata 描述數(shù)據(jù)的描述數(shù)據(jù)


Class類:用于描述一切類/接口访锻。

Class實(shí)例:就是指JVM(虛擬機(jī))中的一份字節(jié)碼

對(duì)于對(duì)象來說褪尝,可以直接使用以下3種來獲取Class實(shí)例

1)對(duì)象.getClass()

2)Class.forName(className[類的權(quán)限定名:包名+類名]);

3)數(shù)據(jù)類型.class


但是我們的基本數(shù)據(jù)類型,就沒有類的權(quán)限定名期犬,也沒有g(shù)etClass方法河哑。

問題:那么如何使用Class類來表示基本數(shù)據(jù)類型的Class實(shí)例?

byte,short,int,long,char,float,double,boolean ?八大基本數(shù)據(jù)類型及 void 關(guān)鍵字
上述8種類型和void關(guān)鍵字龟虎,都有class屬性

表示int 的Class對(duì)象:Class clz = int.class; 泛型為包裝類Integer

表示Boolean的Class對(duì)象:Class clz =boolean.class

表示void的Class對(duì)象:Class clz = void.class;

說有的數(shù)據(jù)類型都有class屬性璃谨,表示都是Class對(duì)象

思考:

int的包裝類Integer

Integer.class ? ?==? ?int.class

System.out.println(Integer.class ?== int.class) ?==> false;

結(jié)果是false,說明是兩份字節(jié)碼鲤妥。

Integer 和 int 是同一種 數(shù)據(jù)類型嗎佳吞?

public void show(Integer i){}

public void show(int a){}

??答案是: 不是;

但是在八大基本數(shù)據(jù)類型的包裝類種都有一個(gè)頭常量:TYPE.

TYPE表示的是該包裝類對(duì)應(yīng)的基本數(shù)據(jù)類型的class實(shí)例棉安;

例:Integer.TYPE ?==> int.class

System.out.println(Integer.TYPE? == int.class)? ==> true;

System.out.println(Integer.TYPE? == Integer.class)? ==> false;


數(shù)組的Class實(shí)例:

String[] sArr1 = {"A","C"};

String[] sArr2 = {}底扳;

String[][] sArr = {};

int[] iArr = {};

表示數(shù)組的Class實(shí)例:

String[] sArr1 = {"A","C"};

Class clz = String[].class;//此時(shí)clz表示的就是一個(gè)String類型的一維數(shù)組類型

所有具有相同元素類型和維數(shù)的數(shù)組才共享同一份字節(jié)碼(Class對(duì)象)
注意:和數(shù)組中的元素沒有一點(diǎn)關(guān)系。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贡耽,一起剝皮案震驚了整個(gè)濱河市衷模,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒲赂,老刑警劉巖算芯,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凳宙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)职祷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門氏涩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人有梆,你說我怎么就攤上這事是尖。” “怎么了泥耀?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵饺汹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我痰催,道長(zhǎng)兜辞,這世上最難降的妖魔是什么迎瞧? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮逸吵,結(jié)果婚禮上凶硅,老公的妹妹穿的比我還像新娘。我一直安慰自己扫皱,他們只是感情好足绅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著韩脑,像睡著了一般氢妈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上段多,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天首量,我揣著相機(jī)與錄音,去河邊找鬼衩匣。 笑死蕾总,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的琅捏。 我是一名探鬼主播生百,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼柄延!你這毒婦竟也來了蚀浆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤搜吧,失蹤者是張志新(化名)和其女友劉穎市俊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滤奈,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摆昧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜒程。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绅你。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖昭躺,靈堂內(nèi)的尸體忽然破棺而出忌锯,到底是詐尸還是另有隱情,我是刑警寧澤领炫,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布偶垮,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏似舵。R本人自食惡果不足惜脚猾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啄枕。 院中可真熱鬧婚陪,春花似錦、人聲如沸频祝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)常空。三九已至沽一,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間漓糙,已是汗流浹背铣缠。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昆禽,地道東北人蝗蛙。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像醉鳖,于是被迫代替她去往敵國(guó)和親捡硅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理盗棵,服務(wù)發(fā)現(xiàn)壮韭,斷路器,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 一纹因、概述 Java反射機(jī)制定義 Java反射機(jī)制是在運(yùn)行狀態(tài)中喷屋,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類中的所有屬性和方法...
    CoderZS閱讀 1,636評(píng)論 0 26
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法瞭恰,類相關(guān)的語(yǔ)法屯曹,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法惊畏,異常的語(yǔ)法是牢,線程的語(yǔ)...
    子非魚_t_閱讀 31,631評(píng)論 18 399
  • 整體Retrofit內(nèi)容如下: 1、Retrofit解析1之前哨站——理解RESTful 2陕截、Retrofit解析...
    隔壁老李頭閱讀 4,577評(píng)論 2 12
  • 《CSS揭秘》技巧三中提到, 等價(jià)于: 為什么bottom right和100% 100%等價(jià)呢批什?請(qǐng)看下面: ba...
    6659a0f02826閱讀 1,494評(píng)論 0 0