Vu le code suivant:Modification d'une variable affecte une variable indirecte (valeur vs référence)
Rect pos = new Rect();
for (int i = 0; i < mCols; i++) {
pos = mTiles[1][i].getmPos();
pos.top = pos.top - size;
pos.bottom = pos.bottom - size;
mTiles[0][i].setmPos(pos);
}
Ce que je veux faire est d'obtenir la valeur de
mTiles[1][i].mPos
le modifier et le mettre dans
mTiles[0][i].mPos
Le problème est cette déclaration
pos = mTiles[1][i].getmPos();
copie la référence à l'objet et non la valeur de l'objet. Ce qui veut dire que lorsque je modifie pos.top ou pos.bottom, l'objet original est modifié.
Je suppose qu'il me manque un concept d'objet pass par référence vs valeur ici ... que je pensais avoir compris. Quelle est la solution ici? Est-ce un problème avec la façon dont j'ai défini ma classe personnalisée?
Merci.
Ahh bien. Je n'ai jamais pensé à le faire de cette façon. Testé et fonctionne. Merci. – user432209