我有一些继承自抽象 Packet 的类(这个类有一个名为 read 的抽象方法,它从 ByteBuffer 中读取)。
在 Python 中我会做类似...
class Blabla(Packet):
pass
class Blabla2(Packet):
pass
然后我会像这样初始化列表中的每个类
_packets = [Blabla, Blabla2]
当我识别数据包的 id 时,我会这样做
pck = _packets[packetId]()
想在 java 中做同样的事情。有没有什么快速的方法(除了用switch)
请您参考如下方法:
是的,可以用 Java 做一些非常相似的事情。
您可能有一个列表 Class对象,然后调用 list.get(packetId).newInstance() 来创建正确类的实例。
参见 Javadoc .
