我是java和编程新手,过去几天我一直在学习。
我已经读过如何使用instanceof运算符是不好的做法,我在他们的例子中有点理解为什么。但是,我正在尝试编写一个客户端 - 服务器通信程序,而我正试图想出如何为它们之间的通信建立一个多功能的平台。所以我创建了一个messenger类和子类,扩展了它以保存不同的数据类型以进行通信。
我正在试图弄清楚服务器如何判断我创建的这些子类中的哪一个是使用ObjectInputStream发送的,而不使用instanceof运算符来判断。在这种情况下使用instanceof是否正常,或者是否应该通过ObjectInputStream发送的对象是否已知,以便可以进行转换?我是在正确的轨道上,还是我的计划结构需要重新思考?
答案 0 :(得分:0)
没关系,我会说。有一些替代方案(比如有一个带有getType()
方法的消息界面并基于此进行区分)但他们都有自己的注意事项。基本上你首先处理的是未知数据,所以一些形式或另一种形式的铸造是不可避免的。您的解决方案的优点在于它非常容易阅读,写和了解。也没多大可能出错。所以请继续!