我创建了一个 HashMap,它将抽象模型的类作为键,然后将模型的实例作为值。我似乎无法添加它。Java 似乎不够聪明,无法意识到我放入 HashMap 的内容实际上是 Model 实例的子类。
abstract public class EntityManager<AbstractModel> {
@Inject
protected static Injector injector;
private HashMap<Class<? extends AbstractModel>, AbstractModel> models = new HashMap<Class<? extends AbstractModel>, AbstractModel>();
public void register(final AbstractModel model) {
models.put(model.getClass(), model); // <-- the problem
}
public AbstractModel get(Class<? extends AbstractModel> Class) {
AbstractModel model = models.get(Class);
if (model == null) {
throw new RuntimeException("Attempting to retrieve an unregistered model.");
} else {
return model;
}
}
}
IntelliJ 告诉我它正在尝试添加Class<? extends Object>
而不是Class<? extends Model>