假设我的代码中已经有 2 个类:
class SomeOrder {
String getOrderId() { return orderId; }
}
class AnotherOrder {
String getOrderId() { return orderId; }
}
如何围绕这两个类创建接口(interface):
interface Order {
String getOrderId();
}
理想情况下,我会修改代码,以便 SomOrder 实现 Order
和 AnotherOrder 实现 Order
但这里的问题是它们属于我无法控制或编辑的包(即它们来自外部 jar )。
我的算法目前看起来是这样的:
void sorter(List<SomeOrder> orders) {
... <custom sort logic> ...
someOrder.getOrderId();
}
void sorter(List<AnotherOrder> orders) {
... <custom sort logic> ...
someOrder.getOrderId();
}
使用单一界面我可以写:
void sorter(List<Order> orders) {
... <custom sort logic> ...
order.getOrderId();
}
最佳答案
您可以使用适配器类:
class SomeOrderAdapter implements Order {
private SomeOrder delegate;
@Override
public String getOrderId() {
return delegate.getOrderId();
}
}
和 AnotherOrder
类似。
关于java - 如何围绕已经存在但不能在java中修改的类创建接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49947749/