我正在使用jgroups作爲中間件創建一個演示股票交易分佈式程序。我的股票類別有一個優先級隊列,它有一個比較器,結果爲Stock$1.class
和Stock$2.class
以及Stock.class
。 Jgroups只能發送可序列化的數據,但從我理解的$1.class
和$2.class
結果是由於比較器推斷的內部類而導致的,因此不能序列化,從而導致JGroups出現異常,有人可以幫助我如何使它們可序列化或其他一些tweek不要讓它看起來像內部類。
import java.io.*;
import java.util.*;
import java.io.Serializable;
public class Stock implements Serializable
{
public String name;
public String symbol;
public int shares = 10000;
public int price = 100;
public PriorityQueue<Order> sellList = new PriorityQueue<Order>(100, new Comparator<Order>()
{
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;
}
}
);
public PriorityQueue<Order> buyList = new PriorityQueue<Order>(100, new Comparator<Order>()
{
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;
}
}
);
}
重新建立了新> java.io.NotSerializableException:庫存在java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)$ 2 \t \t在java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) \t在java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422) \t在java.util.PriorityQueue.writeObject(PriorityQueue.java:686 ) \t在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) \t在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) \t在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) \t在java.lang – Yogesh 2011-04-22 20:57:46