簡體   English   中英

如何在不同的類加載器中使用Singleton對象?

[英]how use Singleton object in different class loader…?

在eclipse插件中,我有兩個插件,它們用於自己的類加載器來加載類。.2 個主要問題
情況1:-在第一個插件中,我做了一個單例類,並且每當我想讓它從另一個插件中設置某個屬性時(因為單例,因此每個對象都會更改相同的對象),但是它不能像我接受的那樣做..因為每個類加載器在那里都有自己的單例對象。
情況2:-在第一個或第二個插件中,我使用單個static屬性制作了一個類,並且通過另一個插件我想訪問該屬性...
我想訪問該屬性,但是我不能,因為那里的每個類加載器都有自己的名稱空間,這意味着那里有靜態變量。
我所做的是:-
1.我在第一個插件中使用static String變量創建一個類
2.通過2ND插件,我設置該屬性的值
3.當我第一次使用它時,它的值如何為null ,如果第二次使用它,則表明我先前設置的值。 現在的問題是我如何才能訪問這些屬性...在情況1和情況2中

在Eclipse中,每個OSGi捆綁包(插件)都有自己的類加載器。 與其他捆綁包相比,它們不是分層的。

但是,如果您在plugin1中定義了一個靜態變量,並且想從plugin2中訪問它,則可以通過編輯plugin2 MANIFEST.MF來擁有plugin2 Import-PackageRequire-Bundle 例如:如果這是plugin2的MANIFEST.MF:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: org.eclipse.ui.examples.propertysheet; singleton:=true
Bundle-Version: 3.2.200.qualifier
Bundle-Activator: org.eclipse.ui.examples.propertysheet.PropertySheetPlugin
Bundle-Vendor: %Plugin.providerName
Bundle-Localization: plugin
Require-Bundle: plugin1
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.ui.examples.propertysheet
Bundle-RequiredExecutionEnvironment: J2SE-1.4

只要捆綁包還使用Export-Package Import-PackageRequire-Bundle是從另一個捆綁包中的一個捆綁包查看類的正確方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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