泛型與反射

引入泛型的目的

通過泛型使得在編譯階段完成一些類型轉(zhuǎn)換的工作,避免在運行時強制類型轉(zhuǎn)換而出現(xiàn)ClassCastException翠储,即類型轉(zhuǎn)換異常。

優(yōu)點

在編譯的時候檢查類型安全橡疼,并且所有的強制轉(zhuǎn)換都是自動和隱式的援所,提高代碼的重用率。

1欣除,類型安全住拭。 泛型的主要目標是提高 Java 程序的類型安全。通過知道使用泛型定義的變量的類型限制历帚,編譯器可以在一個高得多的程度上驗證類型假設(shè)滔岳。沒有泛型,這些假設(shè)就只存在于程序員的頭腦中(或者如果幸運的話挽牢,還存在于代碼注釋中)谱煤。

2,消除強制類型轉(zhuǎn)換禽拔。 泛型的一個附帶好處是刘离,消除源代碼中的許多強制類型轉(zhuǎn)換室叉。這使得代碼更加可讀,并且減少了出錯機會硫惕。

3茧痕,潛在的性能收益。 泛型為較大的優(yōu)化帶來可能疲憋。在泛型的初始實現(xiàn)中凿渊,編譯器將強制類型轉(zhuǎn)換(沒有泛型的話,程序員會指定這些強制類型轉(zhuǎn)換)插入生成的字節(jié)碼中缚柳。但是更多類型信息可用于編譯器這一事實埃脏,為未來版本的 JVM 的優(yōu)化帶來可能。由于泛型的實現(xiàn)方式秋忙,支持泛型(幾乎)不需要 JVM 或類文件更改彩掐。所有工作都在編譯器中完成,編譯器生成類似于沒有泛型(和強制類型轉(zhuǎn)換)時所寫的代碼灰追,只是更能確保類型安全而已堵幽。

Java反射機制定義

Java反射機制是在運行狀態(tài)中,對于任意一個類弹澎,都能夠知道這個類中的所有屬性和方法朴下;對于任意一個對象,都能夠調(diào)用它的任意一個方法和屬性苦蒿;這種動態(tài)獲取的信息以及動態(tài)調(diào)用對象的方法的功能稱為java語言的反射機制殴胧。

1.通過完整包名和類名獲取類的Class對象clazz;
2.通過Class對象clazz獲取它的構(gòu)造函數(shù),屬性和方法所對應(yīng)的Constructor對象佩迟,F(xiàn)iled對象和Method對象团滥。【getConstructors()报强、getMethods()灸姊、getFields()】
3.通過Class對象clazz生成類的實例對象obj”龋【newInstance()】
4.反射調(diào)用方法力惯。【Method.invoke(Object obj, Object... args)】

Class clazz = Class.forName("com.yolo.Person");
Constructor constructor = clazz.getConstructor(null);

// 獲得與該方法對應(yīng)的Method對象
Method methodSetName = clazz.getDeclaredMethod("setName", String.class);
Method methodGetName = clazz.getDeclaredMethod("getName");
// 獲得與該屬性對應(yīng)的Filed對象
Field field = clazz.getDeclaredField("name");
Field fieldAge = clazz.getDeclaredField("age");

// 實例化Person對象
Person p = (Person) clazz.newInstance();
Person p1 = (Person) constructor.newInstance();

// 調(diào)用指定的函數(shù)并傳遞參數(shù)
methodSetName.invoke(p, "tracelss");
methodGetName.invoke(p);

// 訪問成員變量坚嗜,如果是基礎(chǔ)數(shù)據(jù)類型夯膀,則使用setXXX/getXXX形式的方法,否則直接使用set/get
field.set(p, "xin");
fieldAge.setInt(p, 18);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苍蔬,一起剝皮案震驚了整個濱河市诱建,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌碟绑,老刑警劉巖俺猿,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茎匠,死亡現(xiàn)場離奇詭異,居然都是意外死亡押袍,警方通過查閱死者的電腦和手機诵冒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谊惭,“玉大人汽馋,你說我怎么就攤上這事∪” “怎么了豹芯?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長驱敲。 經(jīng)常有香客問我铁蹈,道長,這世上最難降的妖魔是什么众眨? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任握牧,我火速辦了婚禮,結(jié)果婚禮上娩梨,老公的妹妹穿的比我還像新娘沿腰。我一直安慰自己,他們只是感情好狈定,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布矫俺。 她就那樣靜靜地躺著,像睡著了一般掸冤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上友雳,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天稿湿,我揣著相機與錄音,去河邊找鬼押赊。 笑死饺藤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的流礁。 我是一名探鬼主播涕俗,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼神帅!你這毒婦竟也來了再姑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤找御,失蹤者是張志新(化名)和其女友劉穎元镀,沒想到半個月后绍填,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡栖疑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年讨永,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遇革。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡卿闹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出萝快,到底是詐尸還是另有隱情锻霎,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布杠巡,位于F島的核電站量窘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏氢拥。R本人自食惡果不足惜蚌铜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嫩海。 院中可真熱鬧冬殃,春花似錦、人聲如沸叁怪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奕谭。三九已至涣觉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間血柳,已是汗流浹背官册。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留难捌,地道東北人膝宁。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像根吁,于是被迫代替她去往敵國和親员淫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

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

  • 場景:存在著兩個不同的實體類(ParentEntity击敌、ChildEntity)介返,這兩個實體類中都有頭像這一個屬性...
    junerver閱讀 315評論 0 5
  • 浮生有緣映皆,廣系萬里挤聘。 相遇在童話里,童心似你捅彻,純真且無暇组去。 相識在舞臺上;偶然邂逅步淹,善心書善緣从隆。 相知在丹麥行;形...
    我是黑板快看我閱讀 189評論 0 1
  • 連續(xù)幾天聊了經(jīng)濟學(xué)的基本原理缭裆,我們不妨做一次經(jīng)濟學(xué)家键闺。我提出的問題是,你如何治理北京的堵車和如何看待高速公路節(jié)日免...
    嘆誰逍遙閱讀 161評論 0 0
  • 感恩媽媽做可口的飯菜 感恩老公陪我散步 感恩金錢讓我買到喜歡的東西 感恩自己每天堅持鍛煉 感恩媽媽對我的包容 感恩...
    貓兒貓兒閱讀 151評論 0 0
  • 我急匆匆地趕在回家的路上澈驼。到明天的時候辛燥,這個世界馬上就會消失了,這是幾個月前缝其,科學(xué)家宣布這個即將發(fā)生的事實時候挎塌,全...
    長歌百川閱讀 258評論 0 4