2010-03-20 20 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其他子类来完成。