Peut-être que je ne comprends pas comment fonctionne clone()
. La valeur de retour ne devrait-elle pas être égale à l'appelant?Java: contrôles clone() et d'égalité
int[] nums = new int[] {0, 1, 2};
int[] list = nums.clone();
nums.equals(list); //returns false. Why?
for (int ket = 0; ket < list.length; ket++) {
System.out.println(list[ket] == nums[ket]); //prints out true every time
}
list == nums //false
C'est la meilleure réponse jusqu'à présent (l'attribuer). Lorsque vous envisagez d'implémenter Cloneable, ou de remplacer des égaux ou des hash-codes, veuillez lire: http://www.javaworld.com/javaworld/jw-01-1999/jw-01-object.html Mon conseil général: don ' t utilisez Cloneable/clone() mais utilisez un constructeur de copie (qui prend seulement une instance de la classe actuelle en argument) pour faire une copie.Sauvez-vous la douleur. –