2013-04-07 71 views
1

我一直想知道它是否可以覆蓋Java的socket.getInetAddress()方法給予不同的輸出比/IP。例如,只需要IP插座getInetAddress方法重寫

我知道這是一個小小的改變,但自定義格式有時是可取的。

這可以很容易地完成或是字符串操作必要?例如。使用substring(1)

+1

我沒有看到這種方法被宣佈爲最終的,也沒有宣佈最終的類,所以理論上,是的,它可以做到。 – Makoto 2013-04-07 19:12:56

回答

1

Socket未聲明finalSocket.getInetAddress不是final,你可能覆蓋它,即使它不是一個好主意......

在您的實現插座​​的應該工作。

您也必須提供您自己的SocketFactory。我相信現實是一個壞主意。

1

問題是,API類永遠不會返回您的版本的套接字,所以你不能與覆蓋。我建議一個簡單的實用方法,根據您的需要更改地址。

+0

這是SocketFactory的意圖。 – Aubin 2013-04-07 19:15:58

1

如果您希望使該類的界面更適合您的需求,您可以檢查Facade Pattern

0

您指定的方法不會產生任何輸出。你描述的格式來自InetAddress.toString()方法。如果您不想使用這種格式,請不要調用該方法。有InetAddress方法來獲取主機名或地址。使用它們。不是一個真正的問題。