【发布时间】:2020-08-10 00:28:52
【问题描述】:
假设一个接口是这样暴露的:
public interface IAction {
void run();
void walk();
void stop();
void jump();
}
现在像这样可以有任意数量的操作。每个动作都与一个枚举类型相关联,如下所示:
public enum Action {
RUN("run"),
WALK("walk"),
STOP("stop"),
JUMP("jump")
}
现在每次我想添加更多动作时,我都需要在 IAction 界面中添加一个枚举和关联方法。
相反, 无论如何,接口方法可以从枚举中公开吗? IAction 接口的任何实现都应该始终依赖于枚举 Action。 Action 中的所有枚举类型都应该公开。这可能吗?
【问题讨论】:
-
你是否打算对
IAction进行不同的实现? -
假设我只有一个实现。那么有可能吗?无论如何,现在我不是在看多个实现。我认为不会有多个实现。这只是一个库,接口向客户端公开以使用这些方法。实现都在库中处理。
-
如果你只有一个实现,那么你可以在你的枚举中设置实现。我将添加一个答案如何做到这一点。
标签: java reflection enums interface