【发布时间】:2019-04-14 17:30:17
【问题描述】:
我有一个包含多个实体对象的数组列表,这些实体属于不同类型(因为实体是一个抽象类)。在这个我将调用myEntities 的数组列表中,我有类似[4x Zombies, 5x Plants, 6x Projectiles] 的东西(已洗牌)。所有这些类型都扩展了Entity,但我只想使用for-each 循环来删除僵尸。我怎样才能做到这一点?
PS:我不能用instanceof
【问题讨论】:
-
欢迎来到 Stack Overflow!您能否分享Minimal, Complete, and Verifiable example,以便我们重现您的问题?
-
"PS:我不能使用 instanceof" 因为你不能使用适合这项工作的工具,这可能是XY problem 的又一个例子。考虑使用edit 选项并添加更多上下文来解释为什么不能使用
instanceof。 -
BTW foreach(增强的 for 循环)不能/不应该修改它迭代的集合的内容(如果你这样做,你就有可能抛出 ConcurentModificationException)。如果您使用的是 Java 8 或更高版本,则可以使用
yourCollection.removeIf(Predicate)。 -
为什么不能使用
instanceof? -
小幅编辑修正以提高可读性。
标签: java arraylist foreach types