私の目的は、キーがクラスインスタンスであり、値が対応するクラスのインスタンスであるマップを作成することです。意味、
マップ(階層内の特定のクラス->対応するインスタンス)
そのために、私はMapを次のように宣言しました
Map<Class<? extends BaseService>, ? extends BaseService> serviceMap =
new HashMap<Class<? extends BaseService>, BaseService>();
//Assume BaseService is at the root of hierarchy.
上記はコンパイルされます。
マップにデータを入力するために、私は
public <T extends BaseService> void register(T service) {
serviceMap.put(service.getClass(), service);
}
これはコンパイルされません。
これを機能させるにはどうすればよいですか?そして、なぜこれはコンパイルされないのですか?