Ваши анонимные внутренние классы реализуют только Comparator
. Чтобы реализовать Comparator
и Serializable
, вы должны преобразовать их в статические вложенные классы, например
public class Stock implements Serializable {
private static class OrderComparator implements Comparator, Serializable {
public int compare(Order oldOrder, Order newOrder) {
int i = oldOrder.price;
int j = newOrder.price;
if(i > j) {
return 1;
} else if (i < j)
return -1;
} else {
return 0;
}
}
}
private PriorityQueue<Order> sellList = new PriorityQueue<Order>(100, new OrderComparator());
}
Мало того, что это решит вашу непосредственную проблему, это также может сделать код более читабельным.
Кстати, вышеприведенный компаратор можно переписать гораздо более кратко:
public int compare(Order oldOrder, Order newOrder) {
return oldOrder.price - newOrder.price;
}