我想创建一个hashmap,其中的键是接口A,而值是接口B.然后,我想用实现A和B的类对它进行初始化。是否可以使用java泛型?Hashmap generic
也就是说,我想其中A1实现了一个有类似
hashmap<<? implements A>, <? implements B>> _map;
_map.put(a1, b1);
;和b1实现B.
最初的意图是我想创建一个工厂,以便我可以查找a1并返回b1的一个实例。
我想创建一个hashmap,其中的键是接口A,而值是接口B.然后,我想用实现A和B的类对它进行初始化。是否可以使用java泛型?Hashmap generic
也就是说,我想其中A1实现了一个有类似
hashmap<<? implements A>, <? implements B>> _map;
_map.put(a1, b1);
;和b1实现B.
最初的意图是我想创建一个工厂,以便我可以查找a1并返回b1的一个实例。
是的,它是可能的,这将是足够写:
Map<A, B> _map = HashMap<A, B>();
这可能是你在找什么:
HashMap<A,B> map = new HashMap<A,B>();
map.put(a1,b1);
Map<A, B> map = new HashMap<A, B>();
map.put(a1, b1);
尽管这些答案看起来很相似,我要离开因为我认为这是最好的。它在语法上是正确的。通过对象的接口('Map')进行工作要比具有实现依赖关系(在'HashMap'上)更可取。它遵循Java命名约定(它将_前缀给成员变量名称)。 – erickson 2012-03-17 17:55:44
在Java中,它是否遵循约定在域的开头添加'_'?我假设你不是在谈论局部变量。我并不是说它是一个坏主意,只是如果它是一个惯例,那么它就会被很少的跟随。我可以在核心库中找到三个这样的类。 ;) – 2012-03-17 18:09:28
糟糕,“不*前缀_!” – erickson 2012-03-17 18:19:27