2011-11-22 504 views
0

URLClassLoader.addURL是否有任何理由被保護?我問這是因爲我需要通過擴展URLClassLoader來編寫自定義的類加載,它所做的只是調用這個受保護的方法來添加一個jar文件。如果沒有被檢測到,那麼動態添加jar文件可能會更容易。爲什麼URLClassLoader.addURL在Java中受到保護?

回答

2

向類加載器添加新的URL通常是一種抽象違規操作,並且可能導致無法解釋的事情發生。因此它被隱藏起來以免被正常使用。

你有一個不尋常的用例,在這個用例中(我假設)認爲封裝違規是惡意中的較小者,並且允許應用程序的任何部分修補其內部父類加載器。很公平。創建自定義類加載器是實現這一點的方法。但大多數人不希望這種情況發生。

+0

謝謝,我沒有任何其他選擇,因爲我想在運行時動態加載jar文件,並且使用OSGi對於我的應用程序來說是矯枉過正的。 – gigadot

+0

@gigadot - 我沒有看到你的問題是什麼。一個暴露'addURL'方法的自定義類加載器應該只是幾行代碼......並且不用費腦子寫。 –

+0

我沒有寫任何問題。我只是想知道是否存在安全風險。最好,如果我可以避免寫類加載器,我會的。 – gigadot

相關問題