【问题标题】:Using Java Generics with HashMap [duplicate]使用带有 HashMap 的 Java 泛型 [重复]
【发布时间】:2013-10-09 14:45:21
【问题描述】:

我有一个 B 类和 C 类,它们都扩展了 A 类:

public class B extends A {...}
public class C extends A {...}

如何以这种方式将 Java 泛型与 HashMap 一起使用?

B b = new B();
C c = new C();

Map<String, ? extends A> map = new HashMap<String, A>();

map.put("B", b);
map.put("C", c);

Eclipse 总是显示错误:

类型中的 put(String, capture#1-of ? extends A) 方法 地图不适用于 参数(字符串,B)

类型中的 put(String, capture#1-of ? extends A) 方法 地图不适用于 参数(字符串,C)

【问题讨论】:

  • 只需使用Map&lt;String, A&gt;

标签: java generics


【解决方案1】:

只需将HashMap的类型更改为&lt;String, A&gt;

Map<String, A> map = new HashMap<String, A>();

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多