Dériver une ArrayList<E> et la cloner correctement
Bonjour.
Est-ce que vous pouvez m'aider pour la difficulté suivante :
1) Les données
*** Je dispose d'une classe CombinaisonKakuro (crée par moi-même)
*** Je dérive la classe ArrayList<CombinaisonKakuro> (spécificité pour version >= Java 5 : nom de code Tiger)
---- elle contient néanmoins un memebre supplémentaire de type int[] : listeCardinal
----- seul le constructeur par défaut de ReservoirCombinaisonKakuro est défini : il initialise notamment son membre listeCardinal.
pubic class ReservoirCombinaisonkakuro extends ArrayList<CombinaisonKakuro>
implements Cloneable {
/**....**/
protected int[] listeCardinal;
/**...**/
}
2) Voilà, cette classe je veux la cloner. Mais pour moi cette situation est inédite car et ArrayList<E> et int[] sont clonable et doivent être clonées dans mon cas. Comment puis-je m'y prendre ?
Un membre de type T nécessaire ?
Merci :D
Voilà ce que j'ai fait
Code:
1 2 3 4 5 6
|
public ReservoirCombinaisonKakuro clone(){
ReservoirCombinaisonKakuro retour = null;
retour = (ReservoirCombinaisonKakuro) super.clone();
return retour;
} |
Par contre je comprends pas pourquoi ça fonctionne bien : super doit faire référence à ArrayList<CombinaisonKakuro> qui ne contient pas de membre int [] listeCardinal, et non à ReservoirCombinaisonKakuro, qui contient ce membre ... et pourtant ma listeCardinal a bien été clonnée ! (D'où le doute que j'avais). this.super a-t-il fait appel à un ReservoirCombinaisonKakuro ?