java map class_Java:声明一个包含两个相关泛型类型的Map(Map>,Class <?extends ClassB >>)...

博客介绍了Java中自定义Map实现的两种方法。一是扩展现有实现,如创建CompatibleHashMap类;二是实现Map接口,创建CompatibleMap类,通过传入不同Map实例避免依赖特定实现,且编译器会对泛型类型不同情况抛出错误。

另一种方法是提供自己的Map实现.如果扩展现有实现并使用新类型,则不需要太多代码:

public class CompatibleHashMap extends HashMap, ClassB> {

}

现在,一个CompatibleHashMap< String>只允许你把ClassA< String>作为键和ClassB< String>作为价值观.

编辑:

正如您在评论中提到的那样,这样您就可以将自己与Map实现联系起来.您可以通过执行以下操作来解决此问题:

public class CompatibleMap implements Map, ClassB> {

private Map, ClassB> map;

public CompatibleMap(Map, ClassB> map) {

this.map = map;

}

@Override

public Set> keySet() {

return map.keySet();

}

// ... implement all other Map methods by calling the method on map.

}

然后你可以实例化它

CompatibleMap map = new CompatibleMap<>(new HashMap, ClassB>());

这样,您不依赖于特定的Map实现,如果映射的泛型类型ClassA和ClassB不相同,编译器将抛出错误.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值