2012-03-17 67 views
0

我想创建一个hashmap,其中的键是接口A,而值是接口B.然后,我想用实现A和B的类对它进行初始化。是否可以使用java泛型?Hashmap generic

也就是说,我想其中A1实现了一个有类似

hashmap<<? implements A>, <? implements B>> _map; 
_map.put(a1, b1); 

;和b1实现B.

最初的意图是我想创建一个工厂,以便我可以查找a1并返回b1的一个实例。

回答

0

是的,它是可能的,这将是足够写:

Map<A, B> _map = HashMap<A, B>(); 
0

这可能是你在找什么:

HashMap<A,B> map = new HashMap<A,B>(); 

map.put(a1,b1); 
3
Map<A, B> map = new HashMap<A, B>(); 
map.put(a1, b1); 
+0

尽管这些答案看起来很相似,我要离开因为我认为这是最好的。它在语法上是正确的。通过对象的接口('Map')进行工作要比具有实现依赖关系(在'HashMap'上)更可取。它遵循Java命名约定(它将_前缀给成员变量名称)。 – erickson 2012-03-17 17:55:44

+0

在Java中,它是否遵循约定在域的开头添加'_'?我假设你不是在谈论局部变量。我并不是说它是一个坏主意,只是如果它是一个惯例,那么它就会被很少的跟随。我可以在核心库中找到三个这样的类。 ;) – 2012-03-17 18:09:28

+0

糟糕,“不*前缀_!” – erickson 2012-03-17 18:19:27