各位好
以下是我写的一段代码,很神奇的是,在被标记的那一行,有时会报出NULL指针错误。
有人告诉我说可能是线程异步,导致在if的时候是非空,然后进入执行块的时候,由于某些原因,变成空了,这可能吗?
- Java code
if (sender != null && !sender.isAlive()) { sender.run(); <===标记 Log.i(TAG_LISTENER, "$ServerSender back to running"); } else if (sender == null) { sender = new ServerSender(serverSocket); sender.start(); Log.i(TAG_LISTENER, "$ServerSender started in ServerListener"); }
请各位畅所欲言,先谢谢了。
------解决方案--------------------
如果sender是公用的对象,完全就有可能
------解决方案--------------------
也有可能不是sender为NULL,而是run方法中某个变量是NULL。
提供的信息太少,无法确定准确的原因。