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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

之間有什么區(qū)別?Java泛型中的對(duì)象和對(duì)象?

之間有什么區(qū)別?Java泛型中的對(duì)象和對(duì)象?

寶慕林4294392 2019-11-07 12:43:04
我正在使用Eclipse來幫助我清理一些代碼以正確使用Java泛型。大多數(shù)時(shí)候,它在推斷類型方面做得非常出色,但是在某些情況下,推斷類型必須盡可能地通用:對(duì)象。但是Eclipse似乎給了我一個(gè)選擇,可以選擇在對(duì)象類型還是“?”類型之間進(jìn)行選擇。那么兩者之間有什么區(qū)別?HashMap<String, ?> hash1;和HashMap<String, Object> hash2;
查看完整描述

3 回答

?
白豬掌柜的

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

考慮這個(gè)問題的另一種方法是


HashMap<String, ?> hash1;

相當(dāng)于


HashMap<String, ? extends Object> hash1;

將此知識(shí)與Java Generics and Collections的第(2.4)節(jié)中的“獲取和放置原理”相結(jié)合:


獲取和放置原則:僅從結(jié)構(gòu)中獲取值時(shí)使用擴(kuò)展通配符,僅將值放入結(jié)構(gòu)中時(shí)使用超級(jí)通配符,獲取和放置時(shí)均不使用通配符。


希望可以開始使用通配符。


查看完整回答
反對(duì) 回復(fù) 2019-11-07
?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

協(xié)方差以上的答案涵蓋了大多數(shù)情況,但缺少一件事:


“?” 在類層次結(jié)構(gòu)中包含“對(duì)象”。您可以說String是Object的一種,而Object是?的一種。并非所有對(duì)象都匹配Object,但是所有對(duì)象都匹配?。


int test1(List<?> l) {

  return l.size();

}


int test2(List<Object> l) {

  return l.size();

}


List<?> l1 = Lists.newArrayList();

List<Object> l2 = Lists.newArrayList();

test1(l1);  // compiles because any list will work

test1(l2);  // compiles because any list will work

test2(l1);  // fails because a ? might not be an Object

test2(l2);  // compiled because Object matches Object


查看完整回答
反對(duì) 回復(fù) 2019-11-07
  • 3 回答
  • 0 關(guān)注
  • 382 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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