gpt4 book ai didi

java - 删除后销毁所有实例

转载 作者:行者123 更新时间:2023-12-02 07:41:15 24 4
gpt4 key购买 nike

所以我有 list

public List<Entity> entities;//initialized in constructor by entities  = new ArrayList<Entity>();

每当我做类似的事情

entities.get(1).destroy();

它将该方法应用于列表中同一类的每个实体(就像我有类史莱姆 destroy() 会影响所有史莱姆,但不会影响其他内容)。有什么办法可以解决这个问题吗?

编辑:我刚刚做了一些测试。显然它只影响数组中第一个受影响的实体之后的实体。

edit2:好的,完成更多测试,因此您不妨忽略上面的整个部分。在数组列表中,每当我调用remove(int i)时,它都会删除放入位置的对象及其后面的所有对象。

最佳答案

检查列表中的所有引用是否都指向单个对象。

当您将 A 类型的变量分配给另一个变量时,仅复制引用。该物体仍然是独一无二的。因此,如果您想销毁某个元素,您应该检查它是否是使用new创建的,正如 JB Nizet 指出的那样。

关于java - 删除后销毁所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11550028/

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