Destruction d'un objet

Signaler
Messages postés
41
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
16 juillet 2003
-
Messages postés
41
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
16 juillet 2003
-
J'utilise un tableau d'objet . Lorsque un objet n'est plus utile j'aurais aimé le supprimer mais comment ??????
Juls

7 réponses

Messages postés
44
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
27 août 2003
2
mettons que ton tableau s'apelle tab.

tu veux virer l'objet en ligne i:
tab[i]=null;//déréférence l'objet
System.gc();//lance le garbage collector (ca fonctionne de manière un peu aléatoire!!!)

normallement, en théorie, ton objet ne prendra plus de place en mémoire :)

voili voilou
Messages postés
41
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
16 juillet 2003
4
Le garbage collector c'est quoi et surtout ça sert à quoi ???
Lorsque je supprime un objet ça bloque le prog . Le prog est cadencé par le timer plein d'objet voitures se déplacent sur un parcours et lorsqu'elles reviennent au point de départ j'aurais aimé les supprimer mais dés que j'en supprime une erreur tout est queblo ???????????
Si tu as une idée n'hésite pas !!!!

Juls
Messages postés
44
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
27 août 2003
2
le garbage collector (alias le rammasse miettes, qui se lance par System.gc()) sert a désalouer un objet en mémoire (un peu comme les destructeur en C++) pour récupérer de la memoire système. le garbage collector ne désaloue que les objet qui ne sont plus référencés (en effet, en java, ce ne sont plus des pointeurs comme en C++, mais des références). logiquement, le garbage collecteur passe régulièrement et traque les objets non référencés, sans qu'on lui demande. mais pour etre sur, le bout de code que je t'ai passer sert a détruire un objet, en forcant le garbage collector.

maintenant, ton objet a surement bien été détruit, et je pense que c'est a cause de ca que ton prog crashe (peut etre que fallait pas détruire l'objet), il faut donc voir le message d'erreur retourné par java.

voila
@+
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
4
ça te donne quoi comme erreur ????
Messages postés
41
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
16 juillet 2003
4
L'erreur fait référence à un pointeur :

Java.lang.NULLPOINTEREXCEPTION

PUIS AU TIMER :

javax.swing.Timer.fireActionPerformed
javax.swing.Timer$DoPostEvent.run

puis événement :

java.awt.event.InvocationEvent.dispatch
etc...................................................................

Si vous avez une idée n'hésitez pas
merki

Juls
Messages postés
41
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
16 juillet 2003
4
Aprés avoir batailé un peu dites moi si je me goure , on imagine un tableau de 20 objets si je supprime un d'en autres eux à part le vingtiéme je bloque le tout je vais tester de recopier tous les objets à partir de celui à détruire jusqu'au dernier que je détruirais à la fin !!!!!!

Juls
Messages postés
41
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
16 juillet 2003
4
C'est cool ça marche merci de votre aide et à bientot

Juls