Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2010, 17:14
theteam
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta problema con conversion

hola comunidad!! recurro a ustedes porque tengo un problema que no entiendo

voy a tratar de ser lo mas claro posible, ya que hay algunas clases de por medio.

Código:
public class Nodo<E> implements Position<E>
{
...
protected ListaSimplementeEnlazada<Nodo<E>> hijos;
...
public ListaSimplementeEnlazada<Nodo<E>> getHijos() 
    {return hijos;}
...
}
la clase Position<E> no es muy importante, solo es importante saber que Nodo<E>implementa Position<E>.
la ListaSimplementeEnlazada, si bien la uso, tampoco es de importancia, es una Lista de tipo generico E.

Código:
public class Arbol<E> implements Tree<E>
{
...
public Iterable<Position<E>> children(Position<E> v) throws InvalidPositionException 
    {return checkPosition(v).getHijos();}
...
}
el metodo checkPosition(v) devuelve un Nodo<E>, y tira excepcion si no es valido (por eso la InvalidPositionException).

mi problema esta en "return checkPosition(v).getHijos();"
me tira el siguiente error: "Type mismatch: cannot convert from ListaSimplementeEnlazada<Nodo<E>> to Iterable<Position<E>> Arbol.java /Arboles/arbol line 38 Java Problem"

cabe aclarar que la listaSimplementeEnlazada es Iterable<E>.
otra cosa que me da error si pongo es:
"ListaSimplementeEnlazada<Position<E>> hijos=new ListaSimplementeEnlazada<Nodo<E>>();"

lo cual no entiendo, porque Nodo<E> implementa a Position<E>.
alguien sabe cual puede ser el error??

consultando a un amigo, este me dijo que el problema puede ser que java no permite combinar herencia con genericidad. no se bien el nombre de como se llama esta "combinacion", y este amigo tampoco estaba seguro si este es el problema. alguien sabe algo mas al respecto??

muchas gracias desde ya