将类类型与继承进行比较

精英_龙1337

对于我的项目,我有一个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() 给我子类,而不是我想要的类。

我该如何解决这个问题?谢谢

精英_龙1337

感谢您的帮助,我已经做到了:

public void post(Event event, Class<?> type) {}

this.post(new EntityDamageByEntityEvent(), EntityDamage.class);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将类的属性与字符串进行比较?

TypeError:无法将类型“时间戳”与类型“日期”进行比较

为什么将字典键转换为继承的类类型?

将Mockito增强类与常规类进行比较

将Java类注释为可安全进行参考比较

将类型传递给泛型函数并进行比较

可靠地将类型符号(ITypeSymbol)与Roslyn进行比较

无法将类型“时间戳”与类型“ int”进行比较

C ++类从类型继承

将包装器类和基元与==运算符进行比较时,类型转换背后的逻辑是什么?

从继承具体类对抽象类进行类型推断

模板类的类型继承

将模板化类型与C ++中的某些类/类型进行比较

将类型传递为变量,然后与对象类型进行比较

将变量与不同数据类型的多列进行比较?

TypeError:无法将<type'str'>类型与Series进行比较

解析:将PFObject与类中的指针进行比较

尝试将类的实例与变量类型进行比较时出错

全局类与继承的比较

隐藏/显示将ID与类进行比较的部分

将类名与JavaScript中的变量进行比较

将类与它继承的接口(通过Foo为IBar)进行比较将返回false:为什么?

将MappedTo与Slick查询中的原始类型进行比较

将ViewController与Swift中的类型进行比较

将每个拆分结果与每个类元素进行比较

如何与自定义类的类型进行比较

类与原型继承的比较

使用 is 运算符将 Python 类与 None 进行比较

C++ 将新类实例化为继承的类类型