我有一個實現抽象類的類。抽象類在我的項目的另一個包中。通過配置構建路徑/項目添加了該類的抽象包。在實現的類中指責以下錯誤:類型層次結構不一致Classe類型的層次結構不一致
我是否需要將此包添加到其他位置?
謝謝!
我有一個實現抽象類的類。抽象類在我的項目的另一個包中。通過配置構建路徑/項目添加了該類的抽象包。在實現的類中指責以下錯誤:類型層次結構不一致Classe類型的層次結構不一致
我是否需要將此包添加到其他位置?
謝謝!
發生這些錯誤的原因是層次結構中的某些接口/類無法解析。 例如:錯誤在您的類中 - 類X,X繼承Y,繼而Y繼承Z.但是,編譯器無法解析z(在上述錯誤中),因爲z屬於不包含的庫。 因此,您必須將包含z的軟件包添加到classpath /或項目的Java Build Path(如果您使用的是eclipse)。希望它可以幫助。
+1這個答案謝謝。我只是有這個錯誤,並想補充說:如果Z類是你自己的類,但是有一個語法錯誤,也會發生這種情況。所以Z類不能被編譯。在我的情況下,類Z不能被編譯,因爲它使用了Java 7方法,但我將環境降級到了Java 6. –
這意味着你實現的類引用了接口或類,該接口或類再次引用其他庫中的某些其他類或接口,並且這些接口或類不可用。
right click your project ,Properties- java build path- source- include all the cs file source(it may inherit the files) and sync.
這對我而言正確。
這個建議取決於使用的IDE。 @Deb可能不會使用與您相同的一個。 – zck
是的,這也corect。 –
springframework.aop罐子取決於aopalliance.jar它添加到你的類路徑,它將解決烏爾problm希望工程因爲我面臨着我加入依賴的jar所以解決
我也有這個問題,相同的概率當試圖從另一個插件項目中使用某些類時。 我有類似myClass extends pp1Class - 這裏我有錯誤,pp1Class插件被添加爲依賴項。 pp1Class擴展了pp2Class - 這是pp1(plugin proj1)中的依賴項,但不在我的插件中。我所做的是去pp1和你已經定義到pp2的依賴關係,點擊屬性並檢查「重新導出這個依賴項」(這是在MANIFEST.MF中)。 這應該解決問題,它解決了我的問題。
此錯誤的另一個原因是,您的一個基類實現了一個外部庫中的接口,並且.classpath文件保存在源控制系統中(因此爲只讀)。
例如,您的ClassB擴展ClassA和ClassA實現了LibraryA.jar中的InterfaceA。 ClassA在ProjectA中,ClassB在ProjectB中。 ProjectA .classpath文件是隻讀的。
在這裏,您必須從ProjectA導出LibraryA.jar。但是我猜想由於Eclipse錯誤,當一個新的團隊夥伴連接這些項目(或偶爾在準備另一個工作區時),他會得到這種類型的層次結構錯誤。解決這個問題的唯一方法是在ProjectA中檢出.classpath文件,刪除並重新添加一個庫(不一定是LibraryA.jar)。這個操作以某種方式解決了錯誤。
轉到Project Explorer。
錯誤將被解決。
這對我有用,但是,我沒有刪除並添加'JRE System Library',因爲在我的情況下,問題出現在其他JAR庫中。我已經用'maven-eclipse-plugin'(2.10)創建了這個項目,並且刪除並添加了可疑庫,這在eclipse Luna中非常有用。 –
在Eclipse,OSGi環境中,可以將所需的軟件包添加到MANIFEST.MF-> Dependencies選項卡 - > Imported軟件包。這將解決問題。或者包含該類的插件可以添加到必需的插件中
我在我的RCP應用程序中遇到了這個問題。
原因:我沒有在Manifest文件的依賴部分添加核心插件org.eclipse.core.runtime
。 當我添加這個依賴關係jar問題已解決。
謝謝, Sid
顯示一些代碼或東西。你的解釋不太一致。 – Erik