我有一個子類引用一個不同包中的超類。我是否需要導出這兩個軟件包,以便將一個軟件包引用到子類中。OSGi超類的可見性
例如:
BundleOne exports packageB
packageA: interface i
packageB: abstract class B implements i
BundleTwo imports packageB
packageC: class C extends B
這個例子並沒有爲我工作,和OSGi框架抱怨程序包A丟失的導入包約束。我覺得這很奇怪,因爲我沒有在C類中的任何地方引用它。
import-package聲明由maven插件自動構建,我認爲這是在後臺使用bnd。
是的,的確如此。我猜想我沒有想到。所以我認爲,進口/出口必須一路走高,與層級一樣高。 – mhb
是的。因爲所有超類型和聲明的接口都是該類型公共簽名的一部分。它們被這種類型「使用」,這就是爲什麼有使用限制的原因。 –