簡體   English   中英

實現類的ClassCastException

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM