Dobrý den, JVM mi hází chybu s přetypováním : " Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: ADS.AbstrTree$List cannot be cast to Firma.Zamestnanec" . A to přesně v metodě vratPole, která je volaná s přijatým parametrem z metody dejSeznamPotomku viz dole. Řešením by prý mohlo být použít public E[] dejSeznamPotomku(Class<E> cokoliv) ; nicméně, kdyz změním rozhraní a pak volám tuto metodu s parametrem dejSeznamPotomku(Zamestnanci.class), tak mi to vypisuje tohle:
method dejSeznamPotomku in interface IAbstrTree<E#2> cannot be applied to given types;
required: Class<E#1>
found: Class<Zamestnanec>
reason: actual argument Class<Zamestnanec> cannot be converted to Class<E#1> by method invocation conversion
where E#1,E#2 are type-variables:
E#1 extends Object declared in class Pobocka
E#2 extends Object declared in interface IAbstrTree
Vážně už nevím co s tím, budu rád za každou radu...
Zamestnanec[] vratPole(E[] pole) {
Zamestnanec[] zamPole = new Zamestnanec[pole.length];
for (int i = 0; i < pole.length; i++) {
zamPole[i] = (Zamestnanec) pole[i];
}
return zamPole;
}
@Override
public E[] dejSeznamPotomku() {
kontrolaPlnosti();
kontrolaNastaveniAktualnihoPrvku();
E[] pole = (E[])new Object[ mohutnost()];
int i = 0;
for (E e : aktualni.potomci) {
pole[i++] = (E) e;
}
return pole;
}