我希望能够开发一款团队管理软件。我有一个Team对象:
public class Team implements Serializable{
private String name;//
private ArrayList<Player> teamMembers;//
private String sport;//
private ArrayList<Staff> staff;//Non-Player Members such as head coach, assisstant coach, physio, etc.
private Object schedule;
private String teamHometown;
private String teamState;
// Getter and setter methods go here
public Team(String name, String sport, ArrayList<Player> players, ArrayList<Staff> staff){
teamMembers = players;
this.staff = staff;
this.sport =(sport);
this.name = (name);
}
}
团队对象包含一个Player对象的ArrayList。在每个Player对象中,球员有许多属性,例如姓名、统计信息和球员照片(一张缓冲图像):
public class Player implements Serializable{
private BufferedImage playerPhoto;
private String firstName;
private String lastName;
private int jerseyNumber;
private String playerPosition;
private String status;//Is the player Eligible to plays
private int gameAbscenses;
private int goals;
private int appearances;
private int yellowCards;
private int redCards;
private LocalDate birthday;
private boolean starter;
private int shots;
private int shotsOnGoal;
private int assists;
//Getter and Setter Methods go here
public Player(String firstName, String lastName, int jerseyNumber, String playerPosition,BufferedImage playerPhoto) {
this.firstName = (firstName);
this.lastName = (lastName);
this.jerseyNumber = (jerseyNumber);
this.playerPosition = (playerPosition);
this.gameAbscenses = (0);
this.status = ("Healthy");
this.starter = false;
//stats
this.shots = (0);
this.appearances = (0);
this.shotsOnGoal = (0);
this.redCards = (0);
this.yellowCards = (0);
this.assists = (0);
this.goals = (0);
this.birthday = LocalDate.now();
}
我的目标是将一个Team对象的ArrayList进行序列化,但Buffered Images不可被序列化。由于Player对象包含缓冲图像作为其私有实例变量之一,因此我无法对Team对象的ArrayList进行序列化。
我最初尝试了以下方法:
ArrayList<Team> finalTeams = new ArrayList<>(SignInController.userTeams);//Converting the user teams Observable list to an Array List
//Saving the user's Teams locally
FileOutputStream fos = new FileOutputStream(SignInController.userfname+"'s Teams/"+SignInController.userfname+"_teams.xtm");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(finalTeams);//serializing the ARRAYlist of teams
oos.close();
fos.close();
然而,它没有起作用。我还尝试查看其他与序列化缓冲图像相关的堆栈溢出问题,但没有什么能帮助我。
如果有人能解释一下我做错了什么,那就太棒了!谢谢!