在Java中删除对象?

我想删除我创建的对象(跟随您的椭圆形),但是我该怎么做?


delete follower1;

没用。


编辑:


好的,我再说些背景。我正在制作一个小型游戏,它具有您可以控制的椭圆形以及跟随您的椭圆形。现在,我有一个名为DrawPanel.class的文件,该类在屏幕上绘制所有内容,并处理碰撞,声音等。我有一个仇敌.class,它是播放器后面的椭圆形。我有一个entity.class,它是您可以控制的播放器。如果播放器与跟随者相交,我希望删除播放器对象。我这样做的方式:


    public void checkCollisions(){

    if(player.getBounds().intersects(follower1.getBounds())){

        Follower1Alive = false;

        player.health = player.health - 10;

    }

}


繁花如伊
浏览 423回答 3
3回答

摇曳的蔷薇

您应该通过分配null或将其保留在声明该块的位置来删除对其的引用。之后,它将被垃圾收集器自动删除(不是立即删除,而是最终删除)。范例1:Object a = new Object();a = null; // after this, if there is no reference to the object,          // it will be deleted by the garbage collector范例2:if (something) {    Object o = new Object(); } // as you leave the block, the reference is deleted.  // Later on, the garbage collector will delete the object itself.仅供参考:您可以通过调用System.gc()来调用垃圾收集器

qq_花开花谢_0

您的C ++正在显示。deleteJava 中没有,所有对象都在堆上创建。JVM具有依赖引用计数的垃圾收集器。一旦不再有对对象的引用,该对象就可以由垃圾收集器进行收集。myObject = null可能不会这样做;例如:Foo myObject = new Foo(); // 1 referenceFoo myOtherObject = myObject; // 2 referencesmyObject = null; // 1 reference所有这些操作都将引用设置myObject为null,它只myObject对引用计数减1 不会影响曾经指向的myOtherObject对象,因为仍然引用该对象,因此尚无法收集该对象。

精慕HU

如果要帮助对象消失,请将其引用设置为null。String x = "sadfasdfasd";// do stuffx = null;将引用设置为null将使该对象更有可能被垃圾回收,只要没有对该对象的其他引用即可。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java