在您的方法实现
PerspectiveCommands中,不是枚举,而是类型参数(通常称为)
T。因此,它掩盖了与已经说过的axtavt相同名称的枚举,因此
PERSPECTIVE在此未知。
您的抽象方法声明很好,但是您可以使用稍微不同的方法。
public void test(PerspectiveCommandscommand)将不起作用,因为此方法不会覆盖通用版本。原因是使用通用版本时,可从参数中推断类型,因此您可以传递任何枚举。
但是,我假设您有一个定义抽象方法的接口或抽象类。所以尝试这样的事情:
interface TestInterface<T extends Enum<T>>{ public abstract void test(T command);}class TestImpl implements TestInterface<PerspectiveCommands>{ @Override public void test(PerspectiveCommands command) { if(command == PerspectiveCommands.PERSPECTIVE){ //do something } }}


