列表<列表<框>&GT;未序列化

时间:2018-05-29 04:41:31

标签: java serialization deserialization

我有一个班级Player,其中有三个变量,其中一个是List<List<Box>>,当然班级Box确实实现了SerializableBox也有一些变量,除了类Dice之外,它们都是原始类型,它也实现了Serializable

我必须通过带有套接字的网络发送此类,当我将其发送到客户端时,List<List<Box>>看起来没问题,而每个Box也是如此,问题是{{1}应该在Dice中的类总是设置为null,即使我从服务器发送给客户端的那个不是,我绝对确定网络部分是正确的。

忘记在实例化时Box变成List<List<Box>>,应该是Serializable。

ArrayList<ArrayList<Box>>上课:

Dice

package ingsw.model; import java.io.Serializable; import java.util.Random; public class Dice implements Serializable { private int faceUpValue; private final Color diceColor; public Dice(Color diceColor) { this.diceColor = diceColor; } public Dice(int faceUpValue, Color diceColor) { this.faceUpValue = faceUpValue; this.diceColor = diceColor; } /** * Draft the dice * get a random number between 1 and 6 and set the faceUpValue */ void roll() { int value = (new Random()).nextInt(6) + 1; setFaceUpValue(value); } public int getFaceUpValue() { return faceUpValue; } public void setFaceUpValue(int faceUpValue) { this.faceUpValue = faceUpValue; } public Color getDiceColor() { return diceColor; } @Override public String toString() { if (faceUpValue != 0) { return diceColor.toString() + String.valueOf(faceUpValue); } else { return diceColor.toString(); } } } 类实现Serializable:

Card

public abstract class PatternCard extends Card { private int difficulty; protected List<List<Box>> grid; public PatternCard(String name, int difficulty) { super(name); fillGrid(); this.difficulty = difficulty; } @Override public String toString() { return "PatternCard{" + "'" + getName() + "'" + '}'; } public int getDifficulty() { return difficulty; } public void setGrid(List<List<Box>> grid) { this.grid = grid; } public List<List<Box>> getGrid() { return grid; } private void fillGrid() { this.grid = new ArrayList<>(4); this.grid.add(new ArrayList<>(5)); this.grid.add(new ArrayList<>(5)); this.grid.add(new ArrayList<>(5)); this.grid.add(new ArrayList<>(5)); } } 上课:

Box

我已经调查了一下,并认为我应该自行序列化对象并对其进行反序列化,但我不知道这可能是真正的问题,因为ArrayLists是Serializable和每个对象这些ArrayLists也包括在内。

这可能有什么问题?

0 个答案:

没有答案