2010-03-20 43 views

回答

6

如果你的某個對象是一個InetSocketAddress然後簡單地將它轉換:

SocketAddress sockAddr = ... 
InetSocketAddress inetAddr = (InetSocketAddress)sockAddr; 

然後,您可以致電inetAddrgetAddress()方法來獲取與之相關的InetAddress對象。

+1

謝謝,我更多的是一個PHP開發人員和Java新手,所以整個鑄造過程對我來說都是新的。非常感謝 – vasion 2010-03-20 17:41:51

1

其實SocketAddress是一個抽象類,所以你會收到它的一些子類。您是否嘗試將退回的SocketAddress投射到InetSocketAddress

4

您可以嘗試轉換爲它。在這種情況下,這是downcasting

InetSocketAddress isa = (InetSocketAddress) socketAddress; 

但是,如果該類不是您所期望的,那麼這可能會導致ClassCastException

支票可以在此通過instanceof操作進行:

if (socketAddress instanceof InetSocketAddress) { 
    InetSocketAddress isa = (InetSocketAddress) socketAddress; 
    // invoke methods on "isa". This is now safe - no risk of exceptions 
} 

相同的檢查可以爲SocketAddress其他子類來完成。

相關問題