優先キュークラスを提供するライブラリを作成しているとします。ユーザーはそれをインスタンス化し、 Comparator インターフェイスを実装します。これはその後、優先キューに穏やかに渡されます。したい:
1. 次の例が示すように、匿名クラスとして実装することにより、ユーザーが Comparator クラスを簡単に定義できるようにします。
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;
}
};);
2. 接続されたコンパレータを使用してプライオリティ キューをシリアライズおよびデシリアライズする可能性をユーザーに付与します。
3. これを達成するためにJDKのみを使用し、他の外部ライブラリは使用しません
これを達成するには、どのようなアプローチが最適でしょうか?
現在、 Comparator クラスのデシリアライズに問題があります。より具体的には、それを作成した (「所有」している) クラス内でプライベートであり、null コンストラクターも持っていないため、そのインスタンスを作成する際に問題があります (これは実際には公開されている利用可能なコンストラクターを使用できるため、大きな問題です)。
事前にご提案いただきありがとうございます。