2016-01-27 128 views
1

我的包中有一個名爲MyTest的類。它有一個名爲int getVal()的方法。我想讓這個類被一個名字相同的類放在一個罐子裏(比如說)。我使用java類加載器加載jar,但仍然無法覆蓋我的包中的類。我不想用反射。有什麼方法可以通過jar中的類來覆蓋包類嗎?我也試過Thread.currentThread().setContextClassLoader(myclassloader)通過java類加載器加載的類覆蓋現有的類

+0

嘗試在使用問題之前檢查標籤的文字。 「JCL」不是你想要的,但你想要的可能已經在那裏了。 –

+0

因爲看起來你正在嘗試做這個測試,你有沒有考慮過使用像Mockito或PowerMock這樣的模擬框架呢?你想做的事似乎很骯髒。 –

回答

0

確保第一次出現在班級路徑中。

當依賴於MyTest的類由不同的類加載器加載時,添加另一個類加載器可能不起作用。

+0

除了類加載器還有別的方法嗎?我必須通過從jar中加載一個類來在我的包中使用該方法。 –

+0

正如我所說的,'abc.jar'必須出現在類路徑中的其他類之前。 – Henry