gpt4 book ai didi

java - 在列表中查找扩展特定类的对象

转载 作者:行者123 更新时间:2023-12-02 00:28:06 24 4
gpt4 key购买 nike

在我的游戏中,所有游戏对象都扩展实体类。所有敌人对象都有自己的扩展 Enemy 的类。敌人扩展了实体。换句话说,实体 -> 敌人 -> SharkEnemy。

现在,我想要一个函数来测试与特定类的碰撞。也就是说,如果我有一个子弹类,我希望它只测试与扩展 Enemy 的实体的碰撞。

我用谷歌搜索了一下,这就是我所拥有的:

public <T> Entity collide(Entity a, Class<T> desiredClass)
{

for (Entity b : entities)
if (b.getClass() == desiredClass && collide(a, b))
return b;
return null;
}

这就是我想要的,但我需要知道它是否扩展了desiredClass,而不是该类是否等于desiredClass。

最佳答案

不要检查类相等性,而是使用 Class.isAssignableFrom()

 public <T> Entity collide(Entity a, Class<T> desiredClass)
{

for (Entity b : entities)
if (desiredClass.isAssignableFrom( b.getClass() ) && collide(a, b))
return b;
return null;
}

关于java - 在列表中查找扩展特定类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9659834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com