¿No debería Object.clone() necesitar una conversión explícita?
Frecuentes
Visto 93 veces
3
Por qué no se ¿La llamada Object.clone () necesita un lanzamiento explícito? ¿No es esta una excepción a la regla de "el abatimiento siempre necesita y el lanzamiento explícito"? Compilé y ejecuté con éxito el siguiente código utilizando la línea de comandos de javac y Eclipse Helios con JDK1.6.0_29.
public class Main {
public static void main(String[] args) {
byte[] original = { 1, 2, 3, 4 };
byte[] copy = original.clone();
for (byte b : copy) {
System.out.print(b + " ");
}
int[] originalInt = { 11, 22, 33, 44 };
int[] copyInt = originalInt.clone();
for (int i : copyInt) {
System.out.print(i + " ");
}
String[] originalStr = { "1", "2", "3", "4" };
String[] copyStr = originalStr.clone();
for (String s : copyStr) {
System.out.print(s + " ");
}
Main[] originalMain = { new Main() };
Main[] copyMain = originalMain.clone();
for (Main m : copyMain) {
System.out.print(m + " ");
}
} // end method main
} // end class Main
1 Respuestas
5
No estas llamando Object.clone()
. Estas llamando T[].clone()
, que se anula para volver T[]
.
Los miembros de un tipo de matriz son todos los siguientes:
- El método público
clone
, que anula el método del mismo nombre en la claseObject
y no arroja excepciones comprobadas. El tipo de retorno de laclone
método de un tipo de matrizT[]
isT[]
.
contestado el 22 de mayo de 12 a las 15:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java clone or haz tu propia pregunta.
¡Gracias, una vez más, no deberíamos realmente usar funciones de GUI amigables como la declaración abierta en Eclipse! ;P Gracias aix! - Zecas