Предположим, у меня уже есть 2 класса в моем коде:
class SomeOrder {
String getOrderId() { return orderId; }
}
class AnotherOrder {
String getOrderId() { return orderId; }
}
Как создать интерфейс вокруг обоих этих классов, который:
interface Order {
String getOrderId();
}
В идеале я бы изменил код так, чтобы SomOrder implements Order
и AnotherOrder implements 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();
}