2011-06-21 60 views
5

當我可以合理地確定一個URL是否有效時(或許我已經在靜態方法中指定了它),在與java.net.URL而不是java.lang.String的實例一起工作時,是否有任何優點(編碼風格,OOP最佳實踐等)屬性文件),我將只是在它的字符串形式中處理它(例如將它打印在JSP文件中)?Java:URL還是字符串?

回答

10

java.net.URL的等號壞了。您應該使用java.net.URI。您應該儘可能傳遞對象而不是字符串。它可以節省程序員的錯誤,例如錯誤地獲取方法參數 - 如果它們都是字符串,編譯器就不會選擇它。

+0

是不是因爲它實際提取要比較的文檔? –

+0

@Richard H;這是因爲它試圖解析主機名稱並比較IP號碼而不是主機名稱,實際上這不僅僅是壞的,而且也是錯誤的,至少對於具有虛擬主機的HTTP而言。 – gustafc

+0

URL.sameFile(其他網址)怎麼樣? – NoBugs

0

您將在案例或URL中獲得許多方法支持。但如果它只是顯示然後去字符串,你總是可以建立有效的字符串的URL

+0

從URI/URL對象(調用'toString()')獲取一個字符串比從一個字符串創建一個URI/URL(它可以觸發'MalformedURLException's)更容易,所以我可能會投票用於使用URI/URL對象而不考慮預期用途。 – gustafc

0

那麼URL類有很多方法,讓你操縱的網址,例如得到主機,路徑和其他一些東西。如果需要,您還可以打開URL的連接並獲取文檔。

相關問題