質問の言い方がよくわからないので、例を挙げます。
たとえば、次のマップをご覧ください。
Map<Class<? extends DatabaseEntry>, Class<? extends IDecorator<? extends DatabaseEntry>>> map;
たとえばMyClass
、DatabaseEntry
そのIDecorator<MyClass>
. 上記のステートメントの問題は、あまりにも具体的でないことです。もっとタイプセーフが欲しい。このようなもの:
Map<Class<T extends DatabaseEntry>, Class<? extends IDecorator<T>>> map;
もちろん、 T はエントリごとに異なりますが、私が望むのは、次のように呼び出す場合です。
map.get(MyClass.class);
戻り値の型はIDecorator<MyClass>
代わりになりますIDecorator<? extends DatabaseEntry>
それに対する簡単な解決策はありますか?