【发布时间】:2017-09-29 10:52:29
【问题描述】:
我想对两种类型使用一种方法,我试过这样:
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());
}
但我不知道如何调用仅在派生类中的方法。哪种方法最好、最安全?
【问题讨论】:
-
很难理解实际问题是什么......如果您提供实际调用子类(类)方法并且无法编译的代码,它会变得更好。这些调用是否应该在每次转换后立即出现在每个
if块内。无论是扩展Derived1还是Derived2,callMethodDoSomething是该项目都会收到的常见处理吗? -
另外两个演员
(Derived?)有点没用。
标签: java generics methods generic-programming