Comment détruire un objet en lui-même
Est qu'il ya une solution pour la destruction de l'instance courante de l'objet en lui-même ?
Je suis à la recherche de quelque chose qui ressemble à:
class KillMe {
....
public void destroy() {
this.getObject = null //this is only for demonstrate my idea
}
....
}
Pourquoi voudriez-vous? De toute façon, les objets java ne peut pas être "détruite" par autre chose que le garbage collector.
L'objet que je veux faire de la valeur NULL est FÈVE dans la session. Je tiens aussi à le faire dans le courant de l'instance de l'objet.
Si c'est un Ressort question, alors la phrase comme l'un, et d'expliquer correctement ce que vous essayez d'atteindre.
vous ne pouvez pas détruire les objets en java, le garbage collector n'est que lorsque vous ne les utilisez pas, et de toutes ses références sont libérés.
Si ce serait possible, je ne pouvais le code drôle constructeurs de détruire immédiatement l'objet de quelqu'un qui veut créer ou je pourrais installer nice caché NullPointerExceptions 😉
L'objet que je veux faire de la valeur NULL est FÈVE dans la session. Je tiens aussi à le faire dans le courant de l'instance de l'objet.
Si c'est un Ressort question, alors la phrase comme l'un, et d'expliquer correctement ce que vous essayez d'atteindre.
vous ne pouvez pas détruire les objets en java, le garbage collector n'est que lorsque vous ne les utilisez pas, et de toutes ses références sont libérés.
Si ce serait possible, je ne pouvais le code drôle constructeurs de détruire immédiatement l'objet de quelqu'un qui veut créer ou je pourrais installer nice caché NullPointerExceptions 😉
OriginalL'auteur Smolda | 2011-07-20
Vous devez vous connecter pour publier un commentaire.
Objets Java vivre jusqu'à ce qu'il n'y a plus aucune référence à eux. Depuis un objet ne peut pas déterminer le nombre de références il y a de lui-même, un objet ne peut pas "détruire lui-même".
OriginalL'auteur Greg Hewgill
L'objet n'a pas accès à l'références, donc il n'y a aucun moyen de les régler à la
null
ou quelque chose d'autre. Un objet ne peut être "détruit" lorsque le garbage collector vient et efface tous les objets non référencés.Cela étant dit, essayez ceci:
OriginalL'auteur tskuzzy
Non, les objets ne peuvent pas le suicide. Toute mention de lui-même est seulement une référence.
Pour "effacer" l'objet à l'intérieur d'elle-même seulement effacer toutes les variables d'instance.
Pour "effacer" l'objet en dehors de lui-même un aurait la valeur de la variable est égale à null.
OriginalL'auteur Joseph Hansen
Votre exemple de ce que vous voulez faire montre d'un manque de compréhension de comment/quand les objets sont détruits/nettoyé.
L'appel que vous avez là (
this.getObject
) obtient une référence à l'objet courant, et alors que des ensembles de référence null (c'est à dire, de ne plus pointer sur l'objet courant. Il ne fait rien à l'objet lui-même, ni ne modifie d'autres variables d'ailleurs dans le code qui arrive à point à l'objet.Envisager de cette façon... variables du point de valeurs (les objets). Jusqu'à ce que pas plus de variables à une valeur donnée, cette valeur est maintenu autour (pas de déchets collectés et détruits). Afin de supprimer toutes les références à des variables à une valeur, vous devez trouver toutes les variables de ce point et point à quelque chose d'autre (ex, null). De façon réaliste, vous ne pouvez pas le faire (mais je suppose que rien n'est impossible avec assez effrayant de réflexion et/ou bytecode de la magie 😉
À penser d'une autre façon, si vous étiez en mesure de détruire la valeur de l'objet lui-même, qu'adviendrait-il de toutes les autres variables qui sont actuellement en le montrant du doigt? Ils pointent désormais à la mémoire libérée, ce qui entraîne une certaine version de Java d'une erreur de segmentation?
OriginalL'auteur RHSeeger