com.google.common.collect.ClassToInstanceMap
public interface ClassToInstanceMap<B>extends Map<Class<? extends B>,B>
これはいいかも。実装は、
ImmutableClassToInstanceMap
MutableClassToInstanceMap
メソッド
<T extends B> T getInstance(Class<T> type)
<T extends B> T putInstance(Class<T> type, @Nullable T value)