我有一種情況,我必須加載一個命名的類。如果在我的類路徑中有多個具有相同名稱的類(例如,com.example.myclass
),我必須同時加載這兩個類。我正在使用派生自java.lang.ClassLoader
的CustomLoader類的'loadClass()'方法。我沒有改變父類的行爲,只是簡單地調用父類的方法。我的問題是,如果有兩個同名的類,我只能加載其中的一個。我已掃描網絡尋找解決方案,但沒有找到任何解決方案。我通過創建一個新的類加載器實例發現了許多重載類的解決方案,但在我的情況下,新實例可能會再次加載第一個類。這個問題能解決嗎?解決java中的類名衝突
編輯:我忘了提及這兩個類具有相同名稱在不同的jar文件。
編輯:無論喬恩和斯蒂芬作出了同樣的解決方案,但我只能標記一個作爲答案。對不起:(我已經投了兩個答案,但。
我是Java新手。你能解釋一下每個jar的classloader是什麼意思嗎?我如何爲每個jar指定一個不同的類加載器? – 341008 2010-09-25 06:34:30
@Rajorshi:您將不得不創建一個指出每個jar文件的(比如說)URLClassLoader的新實例,並要求每個實例加載該類。但說實話,如果你是Java新手,我會開始嘗試這種事情一段時間。我甚至建議有經驗的Java開發人員應儘可能避免陷入這種情況。 – 2010-09-25 07:13:03
感謝您的提示。我不能拒絕實現這個模塊,但高級java開發人員將會檢查代碼。如果我錯過任何東西,他們應該能夠發現它。 – 341008 2010-09-25 07:43:49