我创建了一个远程服务。在这个远程服务中,我正在创建一个单例对象。一旦创建,该对象应保持到收集垃圾为止。现在当我从单例类中访问这个对象时,我得到了正确的对象。但是当我从外部类访问它时,singleton对象为null,我的类再次被创建。我正在丢失所有初始化对象。
我的单身人士课程如下
class myFactory {
private static myFactory instance;
private myFactory(){
}
public static myFactory getInstance(){
if(instance == null) {
instance = new myFactory();
}
return instance;
}
}
我试图在singleton类中覆盖finalize以检查对象是否被垃圾收集但是它没有进入该函数。
在我访问此单例对象的连接工厂对象之外,我将获得null,因此创建了新对象>我做错了什么?
答案 0 :(得分:0)
这是一个单身人士,我不明白为什么它不起作用。但是我猜你试图在某种IPC上下文中使用Singleton,这就是问题所在(因为远程服务总是一个新的线程)。
问题是:为什么你需要一个单身人士...是不是有更好的解决方案?我不知道你的整个服务结构,但也许在绑定到服务时获取工厂的实例是有意义的。
如果您能提供更多信息,这可能有所帮助