【发布时间】:2014-09-08 10:25:45
【问题描述】:
我正在使用 kryonet 从服务器和客户端来回发送对象。每当接收到对象时,就会运行一个侦听器。似乎确定对象实例的唯一方法是使用:
if(object instanceof ClientLoginPacket){
//Do stuff
}
我想知道 instanceof 检查什么来确定一个对象是否属于特定类型。它是否检查类是否与所有代码完全相同,是否检查变量和名称?它是否也检查导入的包?你给我的任何信息都可以帮助我。
我想知道这是因为我制作数据包的方式,服务器方法中的代码与客户端不同。例如,在我的客户端发送我做的数据包:
public void send(){
Client.sendPacketTCP(this);
}
在我的服务器上我这样做:
public void send(){
Server.sendPacketTCP(this);
}
【问题讨论】:
-
instanceof 是糟糕设计的标志。这就是多态性应该处理的问题。如果您认为您的代码需要它,我建议您重新设计,直到不需要为止。
-
我可以轻松使用其他东西。但就我而言,instanceof 检查的东西越少越好。我希望它只检查变量和类名。
-
谢谢,这很有趣。
标签: java networking packet instanceof kryonet