想使用泛型类型 <T>

我想使用通用类型<T>,以便它接受任何类型的对象。下面是我的代码示例原始代码。


class Address{

///

}


class Person{


///


}


class Details

{

Map<String,String> addressMap;

Map<String,String> personMap;

...


//getters


//setters


public 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);

    }

}

请让我知道更好的方法。


富国沪深
浏览 76回答 1
1回答

翻过高山走不出你

您展示的样本在逻辑、语义和设计上都是不正确的。您展示的课程甚至不相关,也不属于“常见”处理案例。我使用了 2 个不同的类。class Junior {}class Senior {}class Details<T> {&nbsp; &nbsp; Map<T, String> allObjectMap;&nbsp; &nbsp; public Map<T, String> getAllObjectMap() {&nbsp; &nbsp; &nbsp; &nbsp; return allObjectMap;&nbsp; &nbsp; }&nbsp; &nbsp; public void setAllObjectMap(Map<T, String> allObjectMap) {&nbsp; &nbsp; &nbsp; &nbsp; this.allObjectMap = allObjectMap;&nbsp; &nbsp; }}在你的主要方法中,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);如您所见,这样做是完全有可能的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java