J'ai un petit problème en Java. J'ai une interface appelée Modifiable. Les objets implémentant cette interface sont modifiables.Interface clonable obligatoire en Java
J'ai aussi une classe ModifyCommand (avec le pattern Command) qui reçoit deux objets modifiables (pour les échanger dans une liste plus loin - ce n'est pas ma question, j'ai déjà conçu cette solution).
La classe ModifyCommand démarre en créant des clones des objets modifiables. Logiquement, j'ai fait que mon interface Modifiable étend Cloneable. L'interface définit ensuite une méthode clone() que ses classes d'implémentation doivent redéfinir. Puis, dans ModifyCommand, je peux faire: firstModifiableObject.clone(). Ma logique est que les classes implémentant Modifiable devront redéfinir la méthode clone depuis Object, car elles seront Cloneable (c'est ce que je veux faire). Le fait est que, quand je définis des classes implémente Modifiable et que je veux écraser clone(), il ne me le permet pas, indiquant que la méthode clone() de la classe Object cache celle de Modifiable.
Que dois-je faire? Je suis sous l'impression que "je le fais mal" ...
Merci,
Guillaume. Edit: il pense que j'oublierai la chose clone(). Je vais a) supposer que l'objet passé à l'objet Modifiable (implémentant l'interface) est déjà cloné ou b) faire une autre méthode appelée, par exemple, copy(), qui ferait essentiellement une copie profonde de l'objet Modifiable (ou peut-être que la solution générique fonctionnera ...).
Vous avez raison. Jolie petite astuce! Et comme vous le pensiez, cela fonctionnera très bien dans Java 5. –