Giả sử tôi đang tạo một thư viện cung cấp một số thứ khác cho lớp xếp hàng ưu tiên. Người dùng instantiates một và thực hiện một giao diện Comparator mà sau đó được truyền nhẹ nhàng đến hàng đợi ưu tiên. Tôi muốn:Java "tuần tự hóa phương thức" của lớp ẩn danh
1.cấp cho người dùng khả năng để xác định lớp Comparator dễ dàng - bằng cách thực hiện nó như một lớp vô danh, giống như ví dụ này cho thấy:
PriorityQueue<int> pq = new PriorityQueue<int>();
pq.setComparator(new Comparator<int>() {
@Override
public int compare(int i1, int i2){
if(i1 < i2) return -1;
else if(i1 > i2) return 1;
else return 0;
}
};);
cấp cho người dùng khả năng sắp xếp-và-deserialize hàng đợi ưu tiên ALONG với bộ so sánh được đính kèm của nó.
3.chỉ sử dụng JDK để đạt được điều này, không có thư viện bên ngoài khác
cách tiếp cận nào sẽ là tốt nhất để đạt được điều này?
Hiện tại tôi đang gặp vấn đề deserializing lớp Comparator, cụ thể hơn là tạo một thể hiện của nó vì nó riêng tư trong lớp tạo ra nó ("sở hữu" nó) và nó cũng không có hàm tạo null không thực sự là một vấn đề lớn vì tôi có thể sử dụng các hàm tạo sẵn có mà nó cho thấy).
Cảm ơn mọi đề xuất trước.
cảm ơn JB, tôi đã cố gắng tìm cách khác để làm điều này vì nó gây ra một số nhược điểm ... tiếc là tôi đã không và bây giờ tôi sẽ gắn bó với đề xuất của bạn, cổ vũ –