我对枚举不熟悉,想问是否可以将枚举放在抽象方法中并在其他类中重写它? 这是我正在使用的一个示例:
我有许多扩展抽象类的子类,它们每个都有自己的子命令作为枚举类型。枚举类型有一个 int ID 和 String 名称。
此外,还有一个方法接受子命令并根据所选子命令更改输入 UI。
public class CommandOne extends CommandClass{
........
public void updateUIBySubCmd(SubCommand subCmd){
/*Do Something*/
}
private enum SubCommand{
SubCmd1 (ID1, Name1),
SubCmd2 (ID2, Name2),
........
}
}
我有一个由上述子类扩展的抽象类,它不包含任何枚举,只包含几个由子类重写的函数。
问题是,我可以执行以下操作并使 updateUIBySubCmd 方法变得具有枚举类型的抽象吗?如果允许,我该如何实现?
public abstract class CommandClass{
..........
public abstract void updateUIBySubCmd(Enum x);
}
最佳答案
听起来您正在寻找这样的东西:
public abstract class CommandClass<E extends Enum<E>> {
..........
public abstract void updateUIBySubCmd(E x);
}
public class CommandOne extends CommandClass<SubCommand> {
........
@Override
public void updateUIBySubCmd(SubCommand subCmd){
/*Do Something*/
}
}
public enum SubCommand {
SubCmd1 (ID1, Name1),
SubCmd2 (ID2, Name2),
........
}
关于Java - 可以在抽象方法的参数中枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730565/