我想对两种类型使用一种方法,我试过这样:
private <T extends Base> boolean isNeeded(String name, T receivedItem) {
Base item = null;
if (receivedRequest.getClass().equals(Derived1.class)) {
item = (Derived1) receivedItem;
} else if (request.getClass().equals(Derived2.class)) {
item = (Derived2) receivedItem;
}
callMethodDoSomething(item.getData().getSpecificData());
}
但我不知道如何调用仅在派生类中的方法。哪种方法最好,最安全?
答案 0 :(得分:1)
重载的方法是什么。
boolean isNeeded(String name, Derived1 item) {
return callMethodDoSomething(
item.getData().getSpecificData());
}
boolean isNeeded(String name, Derived2 item) {
return callMethodDoSomething(
item.getData().getSpecificData());
}
答案 1 :(得分:1)
为什么不
boolean isNeeded(Base base) {
return callMethodDoSomething(base.getData().getSpecificData());
}
(也跳过'name'参数,因为它没有被使用)