Я пытаюсь передать объект с сервера клиенту, используя ObjectOutputStream
. Класс DataObject:
public class DataObject implements Serializable{
private byte dataType;
private Object data;
public DataObject(byte dataType, Serializable data) {
this.dataType = dataType;
this.data = data;
}
Класс игрока
public class Player implements Serializable{
private int mana, health;
private List<Integer> hand, grave, deck, used;
private Effect healing, posioned, grievousWound, exhaust, resistance, power;
private Player enemy;
Я отправил его с этим кодом
os = new ObjectOutputStream(server.getOutputStream());
os.writeObject(new DataObject((byte) 8, this.player));
System.out.println(this.player);
// It has printed out exact object
И получил его с
DataObject d = (DataObject) is.readObject()
System.out.println(d.getDataType());
System.out.println(d.getData());
System.out.println((Player)d.getData());
Распечатано
8
null
В чем проблема?
Я исправил Object
в Serializable
private byte dataType;
private Serializable data;
os.writeObject(new DataObject((byte) 8,(Serializable)this.player));