私はこのようないくつかのタイプを持っています
// 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>
Guice で使用できるように Foo を再作成するにはどうすればよいでしょうか? 私が立ち往生しているビットは、K を Bar から Foo の 2 番目のパラメーター化された型に相互参照する方法です。
たとえば、
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 が一貫した型であることはわかっています。
何か案は?
乾杯
マット