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

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

Java中的通用數(shù)組

Java中的通用數(shù)組

慕妹3242003 2019-08-09 09:52:00
Java中的通用數(shù)組好吧,我一直在谷歌上網(wǎng),我似乎無法找到任何問題的解決方案。我找到了很多解決方案,而不是任何合適的解決方案。我需要創(chuàng)建一個泛型數(shù)組。但泛型類型本身擴(kuò)展了Comparable。當(dāng)我嘗試以下內(nèi)容時:public class Hash<T extends Comparable<String>> {     private T[] hashTable;     private int tableSize;     Hash(int records, double load) {         tableSize = (int)(records / loadFactor);         tableSize = findNextPrime(tableSize);         hashTable = (T[])(new Object[tableSize]);  //Error: Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable;     }}問題是Object不能被強(qiáng)制轉(zhuǎn)換為擴(kuò)展Comparable的泛型。有沒有解決的辦法?
查看完整描述

3 回答

?
繁星點(diǎn)點(diǎn)滴滴

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

這里的其他答案通常都提倡更好的方法(特別是建議使用ArrayList),但在這個特定情況下的一個簡單答案可能是:

hashTable = (T[])(new Comparable[tableSize]);

(即創(chuàng)建一個類型為raw Comparable而不是Object的數(shù)組)

如果你在Hash對象中正確封裝了對這個數(shù)組的所有訪問權(quán)限,這應(yīng)該有效,但是(正如其他答案所解釋的那樣)你可能會讓自己變得脆弱。


查看完整回答
反對 回復(fù) 2019-08-09
?
SMILET

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

你正在嘗試的演員

(T[])(new Object[tableSize]);

失敗,因?yàn)閿?shù)組中的項是Object的實(shí)例。對象沒有擴(kuò)展Comparable<String>,因此強(qiáng)制轉(zhuǎn)換(T [])失敗,因?yàn)門定義為:

T extends Comparable<String>

要解決此問題:

  • 實(shí)例化數(shù)組,使其項目是某些確實(shí)擴(kuò)展的類的實(shí)例 Comparable<String>

  • 改變hashTable從數(shù)組(這不是一個通用型),到一個通用的集合類型,例如List<T> hashTable = new ArrayList<T>(tableSize>)


查看完整回答
反對 回復(fù) 2019-08-09
  • 3 回答
  • 0 關(guān)注
  • 519 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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