类同名同属性的问题

这几天在写一个小型的超市管理系统。系统主要包含收银和库存管理功能。数据统一放在服务器端。

昨天遇到一个很严重的问题,在用ObjectOutputStream和ObjectInputStream在网络端口之间通信的时候,传输Integer这样的Java封装类型没有问题,可一传送我自己创建的类对象就出现问题,异常显示类不匹配。

想了好久,突然明白。不同包里,两个一模一样的类,及时名称,里面的内容都一模一样,对于java来说也是完全不同的两个类,是无法匹配的,想清楚了这一点,我把服务器端的类文件删除,然后服务类文件的成员变量属性变public,问题应该就可以解决了。

该了以后,服务器启动居然都有问题了。再回想,发现服务器第一次开机,会初始化数据文本,而这个文本是用当时两个类来创建的,现在改成了一个类,文本文件内容也跟类不匹配了。重新初始化服务器,按现在的类写入对象数据,重新启动服务器,一切都正常了。

在《java编程思想》中,关于包,成员权限的问题,讲了很多。可是对于编程,看来的东西终究是不可靠的。这次遇到的这个问题,应该会对包,成员权限的问题有了更深刻的认识了。

猜你喜欢

转载自blog.csdn.net/illikang/article/details/81195598