我正在尝试实现此代码:
public void ActionTypeOne {
doSomething(ActionType1A action) { ... }
doSomething(ActionType1B action) { ... }
}
...
public void register(Action action) {
if (action.getClass().equals(ActionType1A) || action.getClass().equals(ActionType1b)) {
ActionTypeOne.doSomething(action);
}
}
由于 ActionTypeOne 没有实现 doSomething(Action),而只是 doSomething(ActionType1A) 和 doSomething(ActionType1B),所以这段代码不会编译。
但是,由于事先的代码,我知道我的对象绝对是这些类型之一。我可以将其拆分并显式转换为我的两个 ActionType 之一,但这很麻烦。
我可以强制这条线:
ActionTypeOne.doSomething(action)
根据动作类调用 ActionTypeOne 中的正确方法?