![](/img/trans.png)
[英]Mockk - ClassCastException when mocking final class that implements multiple interfaces
[英]ClassCastException for implements class
這個問題與無法轉換為實現接口的問題非常相似。 類加載器問題-如何確定要加載的庫版本(jar文件)
我有一個實現Beet的Apple類。 甜菜延長胡蘿卜
Carrot c= x.getCarrot();
c.getClass() //returns Apple
c.getClass().getInterfaces()[0] //returns Beet.
我想訪問Apple內部的方法。 所以我所做的就是將c轉換為Beet。
Beet b=(Beet)c;
此時,我正在收到ClassCastException
。 我認為這是由於上述鏈接中討論的ClassLoader問題。
但是我不知道如何解決這個問題。 我不太了解OSGi,也不知道如何引用捆綁軟件。 有人可以向我解釋如何解決此問題以及一個很好的參考點。
在我看來,您確實遇到了類加載器問題。 您是從多個捆綁軟件中導出同一軟件包,還是嵌入一個類/軟件包並將其導出到其他地方?
一種建議是始終導入導出的內容。 這樣,所有捆綁包都會從同一捆綁包導入每個類,並且您的類強制轉換應該可以正常工作。
實用的博客文章: http : //blog.osgi.org/2007/04/importance-of-exporting-nd-importing.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.