【发布时间】:2018-06-09 14:04:17
【问题描述】:
我正在寻找一种在Map 的类型中使用泛型类型的Map 的方法,然后使用键和正确的类型检索那些。例如:
private final <T> Map<A<T>,B<T>> map = new HashMap<>();
public <T> B<T> getB(final A<T> a) {
return map.get(a);
}
使用它的一个例子是:
final A<String> a = ...;
final B<String> b = getB(a);
这是否存在或有任何解决方法?
编辑:我知道我可以通过强制转换来解决它,但我想知道是否有一种更优雅的方式不需要我强制转换我检索到的每个值。
【问题讨论】:
-
编译一下就行了。
-
至于我认为您要问的问题,不,不可能以这种方式声明
Map。可能请参阅stackoverflow.com/questions/44422685/… 了解一些解决方法示例(可能重复?)。 -
@zlakad 您认为该文档的哪一部分回答了这个问题?
-
最好把我的问题通读几遍。如果你的问题需要重读几次,最好发邮件给@987654322 @你的问题,这样就更清楚了
-
@zlakad 我很感兴趣地等待您的替代答案。但是作为该库的用户,如果编写代码以强制执行类型安全,那么存在被抑制的未经检查的强制转换既不可见也不麻烦。我的意思是,您将相信(或以其他方式证明)
get方法会得到一些东西,而不是擦除硬盘驱动器,对吗?同样,您必须相信(或以其他方式证明)代码是类型安全的。
标签: java dictionary generics hashmap