簡體   English   中英

通過Java中的ObjectInputStream實現多種類型的對象

[英]Multiple types of objects through an ObjectInputStream in Java

我試圖使用ObjectStreams通過套接字連接發送和接收數據。 我會使用RMI接口,但android不支持它。 通過我的實現,我有多種對象,我想通過流閱讀。 例如,如果客戶端想要從指定的房間斷開連接,他們會發送一個Disconnect對象,如果他們想聊聊某人,他們會通過ect發送聊天對象。

我知道你必須鍵入強制轉換才能在java中使用對象:

joinRoom = (Room) clientInput.readObject();

但如果有一種方法,如果我聲明一個通用對象來告訴它是什么類型,然后確定我將如何處理它?

也許是這樣的:

Object obj;
obj = (Object) clientInput.readObject();

然后使用?

if(obj.getClass().equals(Room)){....}
if(obj.getClass().equals(Disconnect)){....}

提前致謝。

使用instanceof代替:

if(obj instanceof Room)
{
    Room room = (Room) obj;
}

instanceof使用RTTI (運行時類型信息)來檢查基類引用(obj)是否在運行時(Room)有效地對應於給定類型。 然后你可以安全地執行轉換(你不會遇到ClassCastException )。

您可以使用instaceof我相信檢查類型。

.equals()更適合檢查字符串以查看它們是否相同

暫無
暫無

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

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