【发布时间】:2013-11-15 21:37:44
【问题描述】:
我有一个名为 Identifier 的类和一些其他名为 Variable、Scalar 等的类,它们都从 Identifier 扩展而来。
所以当我声明一个新的 Hashmap 时:
Hashmap<String, ? extends Identifier> hm = new Hashmap<String, ? extends Identifier>();
当我调用时返回类型是什么:
hm.get(String)
因为显然这样的事情是无效的:
(? extends Identifier) temp = hm.get(String);
如果不进行一些类型转换或使用泛型 Object 作为类型,我真的不知道解决方案,这两者我都不想这样做。
【问题讨论】:
-
这就是
?的意义所在。你并不确切知道。最多可以是Identifier。
标签: java generics hashmap wildcard