getInstance未被调用,Listener为null的问题
来源:10-12 工厂模式

煮沧海
2019-09-20
老师,这里有一点疑惑和误解,这个getInstance返回的是安全的Listener,但是程序中没有调用,这个对象是返回给谁呢?我运行的时候,发现这个listener一直是null值,不会执行onEvent这个方法,输出“还未初始化完毕!”。
用了您的源码依旧是这样,是不是要在构造函数里调用getInstance呢
写回答
1回答
-
返回的安全的Listener可以不使用,重点是有了getInstance方法后,我们一旦运行完getInstance函数,就代表listener已经准备完毕了,可以正常处理事件了,所以主函数可以这样写:
public static void main(String[] args) { MySource mySource = new MySource(); MultiThreadsError7 safeListener = getInstance(mySource); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } mySource.eventCome(new MultiThreadsError5.Event() { }); } }).start(); }
032020-03-31
相似问题