I have classes which are inherited from abstract Packet( this class has abstract method named read which reads from ByteBuffer).
in Python i would do something like...
class Blabla(Packet):
pass
class Blabla2(Packet):
pass
and then i would init each class in list like this
_packets = [Blabla, Blabla2]
and when i would identify id of packet i would do like this
pck = _packets[packetId]()
Want to do the same in java. Is there any fast way(except using switch)
This is what you should do:
ArrayList<Class> list = new ArrayList<Class>();
list.add(Class.forName("Blabla"));
list.add(Class.forName("Blabla2"));
list.get(packetId).newInstance();
Maybe you are looking for Class#newInstance()
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.