亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

想使用泛型類型 <T>

想使用泛型類型 <T>

富國滬深 2023-01-05 17:10:17
我想使用通用類型<T>,以便它接受任何類型的對象。下面是我的代碼示例原始代碼。class Address{///}class Person{///}class Details{Map<String,String> addressMap;Map<String,String> personMap;...//getters//setterspublic void updateAddress(String id, String case) {        this.addressMap.put(id, case);    }public void updatePerson(String id, String case) {        this.personMap.put(id, case);    }}我想修改類 Details using<T>以便它接受任何類型的對象。請讓我知道最好的方法。我可以像下面這樣引入新變量(allObjectMap),而不是對不同的對象(addressMap、personMap)使用單獨的變量嗎?下面的示例代碼。class Details<T>{Map<T,String> allObjectMap;//getter & setter    public Map<T, String> getAllObjectMap() {    return allObjectMap;}public void setAllObjectMap(Map<T, String> allObjectMap) {    this.allObjectMap = allObjectMap;}public void updateAddress(String id, String case) {       // this.addressMap.put(id, case);     this.allObjectMap.put((T)id, case);    }public void updatePerson(String id, String case) {        this.personMap.put(id, case);  this.allObjectMap.put((T)id, case);    }}請讓我知道更好的方法。
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

您展示的樣本在邏輯、語義和設計上都是不正確的。


您展示的課程甚至不相關,也不屬于“常見”處理案例。


我使用了 2 個不同的類。


class Junior {


}

class Senior {


}

class Details<T> {

    Map<T, String> allObjectMap;


    public Map<T, String> getAllObjectMap() {

        return allObjectMap;

    }

    public void setAllObjectMap(Map<T, String> allObjectMap) {

        this.allObjectMap = allObjectMap;

    }

}

在你的主要方法中,


HashMap<Junior, String> map1 = new HashMap<>();

HashMap<Senior, String> map2 = new HashMap<>();

Details<Junior> juniors = new Details<Junior>();

juniors.setAllObjectMap(map1);

Details<Senior> seniors = new Details<Senior>();

seniors.setAllObjectMap(map2);

如您所見,這樣做是完全有可能的。


查看完整回答
反對 回復 2023-01-05
  • 1 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號