我有一些像这样的类型
// a value that is aware of its key type (K)
Bar<K>
// something that deals with such values and keys
Foo<V extends Bar<K>, K>
如何重新创建 Foo 以便您可以在 Guice 中使用它?我坚持的一点是如何将 K 从 Bar 交叉引用到 Foo 的第二个参数化类型。
例如,
WildcardType kType = Types.subtypeOf(Object.class);
WildcardType barType =
Types.subtypeOf(Types.newParameterizedType(Bar.class, pipeKey));
ParameterizedType fooType =
Types.newParameterizedType(Foo.class, pipelineableType, pipeKey);
真的这似乎是错误的,因为它基本上是:
Foo<V extends Bar<? extends Object>, ? extends Object>
这与以下内容不同:
Foo<V extends Bar<K>, K>
在后一种情况下,我知道K 是一致的类型。
有任何想法吗?
干杯
马特