Acabo de enfrentarme a un problema al trabajar con los tipos paramétricos en JAVA, esto trabajando con los arreglos, pues me tope con el detalle de que en el caso que les presento, no se puede eliminar el warning (@SuppressWarning("uncheked")). Hasta donde vi es un bug, pero si alguien conoce sobre esto ... le agradeceria mucho... He trabajado con la version de java 1.5:0_07-b03
public class Prueba<T> {
private A<T>[] arreglo;
public Prueba( int t ){
// en realidad deberia ser arreglo = new A<T>[t]; pero no compila
arreglo = new A[t];
}
}
class A<T>{
private T dato;
public void mostrar(){
System.out.println("El valor es: "+dato);
}
}
Aún no he visto si en la version 6 de JAVA han mejorado esto...
Comentarios
oye me poodria ayduar con algo plisss
mandame un email paredes.carola@gmail.com y te envio mi duda okis
el que entienda arreglos manda email plisssssss
Hola Wilfredo, tal vez es tarde para enviarte algo sobre el problema pero recien lei el post.
public class Prueba<T> {
private A[] arreglo; //la declaracion de arreglo solo es para reservar espacio en memoria
public Prueba( int t ){
arreglo = new A[t];
arreglo[0]=new A<T>(); //cuando se utiliza el espacio en memoria, recien utilizar generics
}
}
class A<T>{
private T dato;
public void mostrar(){
System.out.println("El valor es: "+dato);
}
}
Bueno como decia en el codigo, la declaracion de arreglos solo es para reservar memoria, no hay necesidad de utilizar ahi generics, deberiamos utilizarlos cuando realmente estes declarando al objeto en la posicion del arreglo especifica.
Espero que sirva
Saludos
arreglo[0]=new A <T> (); //// A obj = new A <T> ();Hasta ahora no vi que hayan quitado el warning, es decir cuando haces arreglo = new A[t], sale un warning que sugiere poner:arreglo = new A <T> [t]; // Esto no compilaBueno entiendo el porque no va el parámetro a momento de reservar espacio en memoria, mi duda surgió a partir del warning. De todas formas gracias.kien puede enviarme unos ejemplos sobre Arreglos
jolmet@hot......
porfis