Dobrý den!
Nedaří se mi implementovat metodu z abstraktní třídy s argumentem typu
výčet. Překlad skončí chybou "chyba "method does not override or
implement a method from a supertype".

Mám docela jednochou abstraktní třídu předka:

public abstract class Round {
        abstract public Enum[] getPossibleTransitions();
        abstract public boolean doTransition(Enum transition);
}

Důvod uvedení Enum, je že každý potomek bude vracet a používat až v
něm známé a definované výčtové typy.

Příklad potomka, který by měl přepisovat tyto dvě metody a u druhého
@Override u metody doTransition(Enum transition) dostávám
nepochopitelnou chybu  "method does not override or implement a method
from a supertype"...

public class BagRound extends Round {
        @Override               // okay
        public BagRound.Transition[] getPossibleTransitions() {
                // něco, zatím:
                throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override               // !!! chyba "method does not override or 
implement a
method from a supertype" !!!
        public boolean doTransition(BagRound.Transition transition) {
                // něco, zatím:
                throw new UnsupportedOperationException("Not supported yet.");
        }

        public enum Transition {
            RECEIVE_AW,
            SEND_BAG,
            CONFIRM_BAG,
            MARK_INVOICED,
            CANCEL
        }
}

Zvláštní, že u první metoda přepsat jde... Buď je to chyba nebo má
neznalost existence nějakého omezení enumu. Používám Sun JDK 6.

Díky za nápady
Libor

Reply via email to