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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

泛型接口后的尖括號是干嘛的?

泛型接口后的尖括號是干嘛的?

fenkapian 2017-05-20 21:23:28
比如下段代碼,尖括號里那個類是干嘛的?class Employee implements Comparable<Employee> {? public int conpareTo(Employee o) {? ? ? return Double.compare(salary,o.salary);? }}要是沒有那個尖括號,這個實(shí)現(xiàn)類里的方法就應(yīng)該寫成下面這樣,為什么?public int compareTo(Object o) {? ?Employee e = (Employee)o;? ?return Double.compare(salary, e.salary);}
查看完整描述

3 回答

已采納
?
一生放蕩不羈丶人稱小小風(fēng)

TA貢獻(xiàn)7條經(jīng)驗(yàn) 獲得超10個贊

這個嘛.

泛型是用來處理具有相同處理邏輯,但是處理的數(shù)據(jù)類型不同的情況.

也就是泛型類只指代了邏輯,沒指定處理的數(shù)據(jù)類型,而在創(chuàng)建泛型類的對象時候進(jìn)行動態(tài)指定數(shù)據(jù)類型.

尖括號中的內(nèi)容<E>便是你告知編譯器你創(chuàng)建的這個泛型類對象處理哪種數(shù)據(jù)類型.比如<Employee>,類型為Employee類對象.

同理繼承一個泛型類的時候你也可以為父類指定處理的類型,這樣繼承的子類就是只針對于某種特定類型進(jìn)行處理.

比如 a implements b<Employee>.

這樣a類接受的參數(shù)類型便限定為只能是Employee.

這樣你便可以看出,你上面的類只能接受Employee類型參數(shù),所以直接使用作為參數(shù)的Employee對象的成員變量就好了.

而如果你沒用在尖括號中指定特定的類型.便是使用Object類作為類型參數(shù).接受到的參數(shù)為object類型(所有類型的父類),

如果你使用Employee類型作為參數(shù)傳遞進(jìn)來,因?yàn)槭荗bject子類所以可以傳遞過來,但是在類中處理的是Object類型,

如果你想使用Employee類中的特有變量,便要將Object類型向下強(qiáng)制轉(zhuǎn)型為Employee類型對象.

比如: Employee e=(Employee)o;

這樣變可以使用Employee中的字段e.salary.

查看完整回答
1 反對 回復(fù) 2017-05-20
?
精慕門9254224

TA貢獻(xiàn)167條經(jīng)驗(yàn) 獲得超46個贊

那就是范型對應(yīng)的類么,如果你不填寫employee,范型默認(rèn)用超類Object來對應(yīng),那么你就要向下轉(zhuǎn)型了!
查看完整回答
反對 回復(fù) 2017-05-20
  • 3 回答
  • 1 關(guān)注
  • 4949 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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