Tag: 对象图

引用对象的Java序列化是“失去价值”?

美好的一天, 我有一个我无法理解的有趣问题。 我有一个名为“HomeScreenManager”的类,它维护一个名为chat的LinkedList 。 HomeScreenManager实例位于服务器上,负责跟踪连接和聊天记录。 然后我创建了一个名为“ProtocolHomeScreen”的类,它是一个带有LinkedList 的类,称为chat,并实现Serializable。 当需要通过聊天更新所有客户端时,我想发送一个ProtocolHomeScreen。 所以我创建了一个全新的ProtocolHomeScreen实例,我说它是链接的字符串列表“获取”HomeScreen的链表。 换句话说,我要序列化的链表是在另一个类中创建的,但我指的是另一个实例。 问题是数据没有被发送,只有一个空的LinkedList出现在另一边。 我已经逐行完成了调试器并检查了所有变量,在我调用writeObject之前,一切看起来都很好,但是在客户端,当我收到ProtocolHomeScreen实例时,链表是空的! (虽然它不是空的)任何想法? 谢谢! public class HomeScreenManager implements ObjectMessageHandler, Serializable { protected LinkedList users; protected LinkedList chat; protected LinkedList sessions; public HomeScreenManager() { chat = new LinkedList(); users = new LinkedList(); sessions = new LinkedList(); } protected void handleChat(String message) { chat.add(message); ProtocolHomeScreen p = […]

如何在对象层次结构中找到循环?

有一个类Company ,它引用了另一个Company实例来代表parent 。 假设有四家公司c1 , c2 , c3和c4以及c2 , c3 , c4将母公司设为c1 。 例如: public class Company { public Company parent; public Company() { } public Company(Company parent) { this.parent = parent; } public static void main(String[] args) { Company c1 = new Company(); Company c2 = new Company(c1); Company c3 = new Company(c1); Company […]