ソケット接続のIPを文字列形式で取得しようとしています。
受信したメッセージのを返すフレームワークを使用していSocketAddressます。どうすればそれをInetSocketAddressまたはに変換できInetAddressますか?
ソケット接続のIPを文字列形式で取得しようとしています。
受信したメッセージのを返すフレームワークを使用していSocketAddressます。どうすればそれをInetSocketAddressまたはに変換できInetAddressますか?
オブジェクトがであることが確実な場合は、InetSocketAddress単にキャストします。
SocketAddress sockAddr = ...
InetSocketAddress inetAddr = (InetSocketAddress)sockAddr;
getAddress()次に、メソッドを呼び出して、それに関連付けられているオブジェクトinetAddrを取得できます。InetAddress
あなたはそれにキャストしてみることができます。この場合、これはダウンキャストです。
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。
実際SocketAddressには抽象クラスなので、そのサブクラスを受け取ります。キャストして戻っSocketAddressてきましたInetSocketAddressか?