如何使用泛型函数参数
How to use generic function parameter
我想对两种类型使用一种方法,我试过这样:
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());
}
但是我不知道如何调用只在派生中的方法类。哪种方法最好、最安全?
这就是方法重载的目的。
boolean isNeeded(String name, Derived1 item) {
return callMethodDoSomething(
item.getData().getSpecificData());
}
boolean isNeeded(String name, Derived2 item) {
return callMethodDoSomething(
item.getData().getSpecificData());
}
为什么不只是
boolean isNeeded(Base base) {
return callMethodDoSomething(base.getData().getSpecificData());
}
(也跳过 'name' 参数,因为它未被使用)
我想对两种类型使用一种方法,我试过这样:
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());
}
但是我不知道如何调用只在派生中的方法类。哪种方法最好、最安全?
这就是方法重载的目的。
boolean isNeeded(String name, Derived1 item) {
return callMethodDoSomething(
item.getData().getSpecificData());
}
boolean isNeeded(String name, Derived2 item) {
return callMethodDoSomething(
item.getData().getSpecificData());
}
为什么不只是
boolean isNeeded(Base base) {
return callMethodDoSomething(base.getData().getSpecificData());
}
(也跳过 'name' 参数,因为它未被使用)