对于我的项目,我有一个HashMapClass<?>
作为键和MyClass
值。
Map<Class<?>, MyClass> map = new HashMap<Class<?>, MyClass>();
例如,我输入了一些值:
map.put(EntityDamageEvent.getClass(), new MyClass());
这是此键的继承树:
class EntityDamageByEntityEvent extends EntityDamageEvent
class EntityDamageEvent extends EntityEvent
class EntityEvent extends Event
当我尝试从映射中获取值时出现问题,但是该键恰好是我实际尝试使用的键的子类:
void doSomething() {
EntityDamageByEntityEvent event = new EntityDamageByEntityEvent();
post(event); //This returns null
}
MyClass post(Event event) {
return map.get(event.getClass());
}
Object.getclass()
给我子类,而不是我想要的类。
我该如何解决这个问题?谢谢
感谢您的帮助,我已经做到了:
public void post(Event event, Class<?> type) {}
this.post(new EntityDamageByEntityEvent(), EntityDamage.class);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句