gpt4 book ai didi

Java有效地删除对象

转载 作者:行者123 更新时间:2023-11-29 05:24:37 25 4
gpt4 key购买 nike

我正在尝试用 Java 制作一个小游戏。我创建了一个名为 Game 的类和一些子类。我将子类 Body 用于游戏中的各种对象。我想要 Game 中的一个方法来生成对象。此方法应添加对列表的引用,以便稍后可以计算与其他主体的交互。

游戏类看起来像这样:

import java.util.*;

class Game {

public List<Body> bodies = new ArrayList<Body>();

public void spawn( Body body ) {
bodies.add( body );
}
}

好的,我认为这行得通。现在我也希望能够 deSpawn body 。我试过这个:

import java.util.*;

class Game {

public List<Body> bodies = new ArrayList<Body>();

public void spawn( Body body ) {
bodies.add( body );
}

public void despawn( Body body ) {
body = null;
}
}

它没有按预期工作。我想它只是删除了对该对象的引用,如果这是正确的,我将不知道如何删除对该对象的所有引用。我想我可以遍历数组,但这看起来很愚蠢,因为我有一个对实际对象的引用。我不应该破坏它吗?更优雅的选择?

最佳答案

public void despawn( Body body ) {
body = null;
}

在这里,您只是将作为参数传入的 body 的值设置为 null

您可以调用:

public void despawn( Body body ) {
if(body != null && !bodies.isEmpty()){
bodies.remove(body);
}
}

这将删除内存中所有出现的 body,假设您还处理了传递给方法的对象。

关于Java有效地删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23164154/

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