Java Enum как универсальный тип в Enum
Я пытаюсь создать абстрактный метод в абстрактном классе, который принимает мой собственный Enum в качестве аргумента. Но я хочу также, чтобы этот Enum был общим.
Итак, я объявил это так:
public abstract void test(Enum command);
В реализации у меня есть enum как этот:
public enum PerspectiveCommands {
PERSPECTIVE
}
и объявление метода становится:
@Override
public void test(Enum command) {
}
Но если я сделаю:
@Override
public void test(Enum command) {
if(command == PerspectiveCommands.PERSPECTIVE){
//do something
}
}
Я нене имеет доступа кPerspectiveCommands.PERSPECTIVE
с ошибкой: я '
cannot find symbol symbol: variable PERSPECTIVE location: class Enum where PerspectiveCommands is a type-variable: PerspectiveCommands extends Enum declared in method test(Enum)
мы сделали обходной путь, как это:
public byte[] executeCommand(Enum command) throws Exception{
return executeCommand(command.name());
}
@Override
protected byte[] executeCommand(String e) throws Exception{
switch(PerspectiveCommands.valueOf(e)){
case PERSPECTIVE:
return executeCommand(getPerspectiveCommandArray());
default:
return null;
}
}
Но я хотел бы знать, если этоможно не пройти мимо моего обходного пути?