簡體   English   中英

Java class 列表如 Python

[英]Java class list like in Python

我有從抽象數據包繼承的類(這個 class 有一個名為 read 的抽象方法,它從 ByteBuffer 讀取)。

在 Python 我會做類似的事情......

class Blabla(Packet):
    pass
class Blabla2(Packet):
    pass

然后我會像這樣在列表中初始化每個 class

_packets = [Blabla, Blabla2]

當我識別數據包的ID時,我會這樣做

pck = _packets[packetId]()

想在 java 中做同樣的事情。 有什么快速的方法(使用開關除外)

是的,在 Java 中可以做一些非常相似的事情。

您可以擁有Class對象的列表,然后調用list.get(packetId).newInstance()來創建正確的 class 的實例。

請參閱Javadoc

這是你應該做的:

ArrayList<Class> list = new ArrayList<Class>();
list.add(Class.forName("Blabla"));
list.add(Class.forName("Blabla2"));

list.get(packetId).newInstance();

也許您正在尋找Class#newInstance()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM