gpt4 book ai didi

java - 是否可以将包含 BufferedImage 的对象的 ArrayList 序列化为 java 中对象的私有(private)实例变量之一?

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:23 24 4
gpt4 key购买 nike

<分区>

我正在尝试开发团队管理软件。我有一个团队对象:

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 对象中,玩家都有许多属性,例如名称、统计数据和玩家照片(缓冲图像):

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,但是缓冲图像不可序列化,并且由于 Player 对象包含缓冲图像作为其私有(private)实例变量之一,我无法序列化 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();

然而,它并没有奏效。我还尝试查看与序列化缓冲图像相关的其他堆栈溢出问题,但没有任何帮助。

如果有人能向我解释我做错了什么,那就太棒了!谢谢!

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com