我在找什么:
我正在寻找构建一些在地图的键和值上强制类型的东西:有点像Map<Key<X>, Value<X>>
. 但是,我还想强制每个键/值条目中的类型匹配,但是在条目之间,不应该强制执行任何类型。
例如,在同一个映射中,这些键/值对应该被认为是有效的:
Key<Integer>
映射到Value<Integer>
Key<String>
映射到Value<String>
Key<Double>
映射到Value<Double>
但是,这样的事情是无效的:
Key<Integer>
映射到Value<String>
Key<Double>
映射到Value<Boolean>
如何使用 Java 泛型来实现这一点?
我不是在寻找什么:
我知道我可以实现类似的东西
Set<Pair>
,其中 pair 接受相同类型的键/值。但是,按键查找将不再是一个恒定时间操作。我知道我可以做类似
Map<Key<?>, Value<?>>
的事情,只是断言 Key 和 Value 在运行时是相同的类型。但是,我想知道这是否可以严格使用泛型。