我遇到了一些对我来说很复杂的问题。 我需要在这里进行 null 检查,但据我们所知!= null
但是计划任务中会发生什么?我在一个对象中有一个可运行的类,大约 1 分钟后我在该可运行的内部使用该对象的方法,但是如果该特定对象在 60 秒后现在为空,我会收到错误,所以我只需要 null 检查这些 null 检查... 例如:
ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
{
@Override
public void run()
{
L2PcInstance.this.stopFear(true);
}
}, 60000);
L2PcInstance 是我想要进行空检查的基本类/对象
问题是:
null
Exception in thread "AISTPool-7" java.lang.NullPointerException
at net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.endSpree(L2PcInstance.java:11293)
at net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.doDie(L2PcInstance.java:4230)
at net.sf.l2j.gameserver.model.actor.status.PcStatus.reduceHp(PcStatus.java:215)
at net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.reduceCurrentHp(L2PcInstance.java:9431)
at net.sf.l2j.gameserver.model.actor.L2Character.reduceCurrentHp(L2Character.java:5957)
at net.sf.l2j.gameserver.model.actor.L2Character.onHitTimer(L2Character.java:4359)
at net.sf.l2j.gameserver.model.actor.L2Character$HitTask.run(L2Character.java:2246)
at net.sf.l2j.gameserver.ThreadPoolManager$RunnableWrapper.run(ThreadPoolManager.java:85)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
不用担心所有这些类,它们只是触发器
最佳答案
but as far as we all know this != null
没有“据我们所知”的说法。根据定义,this != null。
I have a runnable class inside an object and im using the object's methods inside that runnable after about 1 minute, but if that specific object is now null after those 60 seconds
你描述的情况是不可能的。对象不会变成 null。并且包含内部类实例的对象不会在这些内部类之前被最终确定或垃圾收集。
I get errors
毫无疑问,但不是因为该对象为 null。堆栈跟踪中的 NullPointerException 并非来自您发布的代码。
关于Java "this"计划任务中的空检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21359079/