You need to take one more step and do this:
ClassName copy = (ClassName)super.clone(); copy.tiles = (Tile[][]) tiles.clone(); for(int i = 0; i < copy.tiles.length; i++) { copy.tiles[i] = (Tile[]) tiles[i].clone(); } ); ClassName copy = (ClassName)super.clone(); copy.tiles = (Tile[][]) tiles.clone(); for(int i = 0; i < copy.tiles.length; i++) { copy.tiles[i] = (Tile[]) tiles[i].clone(); } ) tiles.clone (); ClassName copy = (ClassName)super.clone(); copy.tiles = (Tile[][]) tiles.clone(); for(int i = 0; i < copy.tiles.length; i++) { copy.tiles[i] = (Tile[]) tiles[i].clone(); } { ClassName copy = (ClassName)super.clone(); copy.tiles = (Tile[][]) tiles.clone(); for(int i = 0; i < copy.tiles.length; i++) { copy.tiles[i] = (Tile[]) tiles[i].clone(); } ]) tiles [i] .clone (); ClassName copy = (ClassName)super.clone(); copy.tiles = (Tile[][]) tiles.clone(); for(int i = 0; i < copy.tiles.length; i++) { copy.tiles[i] = (Tile[]) tiles[i].clone(); }
The reason is that the clone creates a shallow copy of the top-level array that holds links to other arrays.
source share