有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于在对象上添加/删除功能的java范例

假设我正在为事件编写处理程序

该活动一经创建,即可被预订或取消

所以我可以创建一个类似这样的接口

void book();
void cancel();

如果我们进一步扩展它,我们可以添加取消预订和取消预订的方法

void book();
void unbook();
void cancel();
void uncancel();

现在的问题是,我可以对一个尚未取消的事件调用uncancel()

当然,我可以让它抛出一个IllegalStateException,但我想知道是否有可能在编译时而不是运行时得到一个错误

我必须解决的一个想法是使用更多的接口,有点像这样

Unbookable book();
Uncancellable cancel();
但是当你认为你想做这样的事情

时,问题就变得明朗了。
book().cancel().uncancel().unbook()

因为cancel/uncancel方法不知道它们返回的是基Event还是Unbookable事件

那么,有没有明确的java范例可以体面地解决这个问题呢? 最好是一种也能提供智能感知的方式


共 (0) 个答案