Hola gente, les comento mi situación:
Tengo que modificar un código de forma de que realize un árbol de jerarquías .. es decir, tipo los arboles genealógicos, que a partir de un padre se agregan hijos, y a los hijos se le agregan mas hijos y así sucesivamente . Finalmente tengo que imprimir por pantalla el árbol genealógico completo. El problema es que por mas que modifique y modifique las clases, siempre obtengo el siguiente mensaje en consola:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to trabajopractico.Nodo
at trabajopractico.ArbolNario.getRoot(ArbolNario.java :39)
at trabajopractico.Organigrama.main(Organigrama.java: 23)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
Aca les dejo los codigos de cada una de las clases que forman parte del trabajo:
package trabajopractico
import java.util.ArrayList
import java.util.List
@author Peggy
/
public class ArbolNario {
private String s
private List x = new ArrayList()
//completar los elementos private que correspondan
Documentar los métodos.
/
public void setRoot(Nodo root) {
//completar
root.setContent(s)
}
public ArbolNario(Object o) {
x.add(o)
}
public Nodo getRoot() {
return (Nodo) x.get(0)
//completar
}
public Nodo add(Nodo n, Object o) {
//completar
n.setContent(o)
return (Nodo) n.getContent()
}
public List getNodes() {
List cola = new ArrayList()
cola.addAll(x)
return cola
}
}
-
package trabajopractico
import java.util.ArrayList
import java.util.List
@author Peggy
/
public class Nodo {
private List x = new ArrayList()
//completar los elementos private que correspondan
Por qué el constructor es protected?
/
protected Nodo(Object content) {
x.add(content)
}
Por qué este método es protected?
/
protected List getHijos() {
return (List) getContent()
}
public Object getContent() {
Object j = null
for( int i=0 i<= x.size() i++){
j = x.get(0)
}
return j
}
public void setContent(Object content) {
x.add(content)
}
}
-
package trabajopractico
import java.util.ArrayList
import java.util.List
import trabajopractico.Nodo
import trabajopractico.ArbolNario
@author Peggy
/
public class Organigrama {
public static void main(String[] args) {
ArbolNario a = new ArbolNario("CEO") // Presidente es la raíz del árbol
Nodo cfo = a.add((Nodo) a.getRoot(), "CFO")
a.add(cfo, "Gerente de Finanzas")
Nodo gerenteIT = a.add(cfo, "Gerente de IT")
a.add(gerenteIT, "Jefe de Tecnología")
a.add(gerenteIT, "Jefe de Aplicaciones")
Nodo jefeERP = a.add(gerenteIT, "Jefe de ERP")
a.add(jefeERP, "Consultor Sr. 1")
a.add(jefeERP, "Consultor Sr. 2")
a.add(jefeERP, "Consultor Sr. 3")
a.add(jefeERP, "Consultor Jr. 1")
List nodos = new ArrayList()
System.out.println(nodos = a.getNodes())
}
}
Por favor si alguien puede darme una mano con este código se lo agradeceré mucho ya que no tengo buen manejo de las Colecciones.
Muchas Gracias!