Quelle est l'utilisation de la mise en oeuvre d'une interface claquant car il s'agit d'une interface de marqueur? P>
Je peux toujours faire une méthode de clone d'objet public () dans ma classe. Quel est le but réel de l'interface clonable? P>
5 Réponses :
c'est parce que le Vous devez jeter un oeil à la Documentation pour suivi est comment clone () code> méthode jette
clonenotsupportedexception code> si votre objet n'est pas
clonable code>.
Clone () code>
méthode. p> clone () code> méthode est déclaré dans la classe
objet code>: P >
protected Object clone() throws CloneNotSupportedException
faire Cela dit, la seule chose qu'elle est "active" la mise en œuvre par défaut de clonable code> une interface de marqueur était une erreur. p>
clone () code> dans
objet code>. Si vous n'ayez pas
implémenter clonable code> puis appelez
super.clone () code> lancera un
clonenotsupportedexception code>. P>.
Pourriez-vous expliquer pourquoi c'était une erreur?
@MarkrotteveELL L'interface clonable doit avoir une méthode clone et la méthode de clone protégée dans l'objet ne doit pas nécessiter une "activation". L'interface en tant que supplication ne sert aucun objectif utile réel, tout en utilisant un bon nom et de la confusion.
Certaines personnes disent que c'est une tentative d'imitation de Copy Constructor de C ++, mais voici la précédente question similaire sur Stackoverflow à ce sujet: À propos de Java Clonable P>
Objet de la méthode clone () Créer une nouvelle instance (copie) de l'objet sur lequel il est appelé. Comme vous pouvez le constater dans les réponses à utiliser la méthode de clone, votre classe doit implémenter l'interface clocable. Vous pouvez choisir comment implémenter le clone, vous pouvez faire une copie peu profonde ou profonde pour votre classe. Vous pouvez voir des exemples http://javapapers.com/ Core-java / java-clone-clone-superficiel-copy-copy-copy / . p>