Een object in Java verwijderen?

Ik wil een object verwijderen dat ik heb gemaakt (een ovaal dat u volgt), maar hoe moet ik dit doen?

delete follower1;

werkte niet.

BEWERKEN:

Ok, ik zal wat meer context geven. Ik maak een klein spel met een ovaal dat je kunt besturen en een ovaal dat je volgt. Nu heb ik bestanden met de naam: DrawPanel.class, deze klasse tekent alles op het scherm en handelt botsingen, geluiden, enz. af. Ik heb een vijand.class, dat is het ovaal dat de speler volgt. Ik heb een entiteit.klasse, de speler die je kunt besturen. En als de speler de volger kruist, wil ik dat mijn spelerobject wordt verwijderd. De manier waarop ik het doe:

   public void checkCollisions(){
    if(player.getBounds().intersects(follower1.getBounds())){
        Follower1Alive = false;
        player.health = player.health - 10;
    }
}

Antwoord 1, autoriteit 100%

Je moet de verwijzingen ernaar verwijderen door null toe te wijzen of het blok te laten waar het is gedeclareerd. Daarna wordt het automatisch verwijderd door de vuilnisman (niet onmiddellijk, maar uiteindelijk).

Voorbeeld 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

Voorbeeld 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.

Niet iets waarnaar u op zoek bent, maar FYI: u kunt de vuilniscollector aanroepen met de oproep System.gc ()


Antwoord 2, Autoriteit 38%

Uw C++ wordt weergegeven.

Er is geen deletein Java, en alle objecten worden op de heap gemaakt. De JVM heeft een garbagecollector die afhankelijk is van referentietoelen.

Zodra er geen verwijzingen meer naar een object zijn, wordt het beschikbaar voor het verzamelen door de vuilniscollector.

myObject = nullmogen het niet doen; Bijvoorbeeld:

Foo myObject = new Foo(); // 1 reference
Foo myOtherObject = myObject; // 2 references
myObject = null; // 1 reference

Alles hiervoor is de referentie ingesteld myObjectNAAR NULL, het heeft geen invloed op het object myObjecteenmaal gewezen op behalve om de referentietelling eenvoudig te verlaagt. Sinds myOtherObjectVerwijst nog steeds naar dat object, het is nog niet beschikbaar om te worden verzameld.


Antwoord 3, Autoriteit 7%

Als u wilt helpen, moet u een object weggaan, de verwijzing naar NULL.

String x = "sadfasdfasd";
// do stuff
x = null;

De verwijzing naar null zal het waarschijnlijker maken dat het object afval wordt verzameld, zolang er geen andere verwijzingen naar het object zijn.


Antwoord 4, Autoriteit 2%

U hoeft geen objecten in Java te verwijderen. Wanneer er geen verwijzing naar een object is, wordt deze automatisch door de vuilniscollector verzameld.


Antwoord 5

U kunt de referentie verwijderen met null.

Laten we zeggen dat je klasse hebt A:

A a = new A();
a=null;

De laatste instructie verwijdert de referentie van het object aen dat object wordt “Garbage verzameld” door JVM.
Het is een van de gemakkelijkste manieren om dit te doen.


Antwoord 6

Java heeft een garbage collector, het zal het object voor u verwijderen als er geen referentie wordt gehouden.


Antwoord 7

//Just use a List
//create the list
public final List<Object> myObjects;
//instantiate the list
myObjects = new ArrayList<Object>();
//add objects to the list
Object object = myObject;
myObjects.add(object);
//remove the object calling this method if you have more than 1 objects still works with 1
//object too.
private void removeObject(){
int len = myObjects.size();
for(int i = 0;i<len; i++){
Objects object = myObjects.get(i);
myObjects.remove(object);
}
}

Other episodes