0

我的 NetBeans 平台应用程序有两个nbm模块 A 和 B 以及一个jar项目。NB 模块依赖于包含名为 Engine 的单例类的 JAR。当我从模块 A 访问 Engine 类时,Engine 对象创建并返回。因此,当我从模块 B 调用相同的 Engine 类时,我希望已经创建了 Engine 对象。但它会再次创建新的 Engine 对象并返回。

===jar 模块===

Class Engine
{
private static Engine single_instance= null;
private Engine(){}

public static Engine getInstance() 
    { 
        if (single_instance == null) 
{
            single_instance = new Singleton(); 
  }
        return single_instance; 
    } 

===模块A===

System.out.println(Engine.getInstance());// prints object address 1

===模块B===

System.out.println(Engine.getInstance());// prints object address 2

我也想从模块 B 调用中获取相同的对象,因为 jar 是这两个模块之间的共享资源。通过单个 jar 在两个 nbm 之间共享对象的正确方法是什么?

4

1 回答 1

0

尝试将 Engine 实现为像 UpperCaseFilter 这样的 ServiceProvider,然后在下一个模块中使用 Lookup 来获取实现。

https://platform.netbeans.org/tutorials/nbm-maven-quickstart.html

于 2020-12-08T16:18:12.297 回答