Java "this"计划任务中的空检查

标签 java null this

我遇到了一些对我来说很复杂的问题。 我需要在这里进行 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/

相关文章:

java - Android Studio : TimerTask

java - item.getActionview() 总是给出 null

java - 在Heritrix爬虫工具中如何从爬行的url中提取内容

c - fgets() 不读取文本文件?

java - 如何将Android PopupMenu的背景设置为白色

ms-access - Ms Access 中的 DoEvents 语句出现 "Invalid use of Null"错误

Java显式构造函数调用和实例初始化器

javascript - 对于这个 J-Query 扩展文本区域来说,这是正确的 JS 吗? 'this' 也和 JS 中的 event.target 一样吗?

php - $this->load->library ('form_helper' ) 等同于 C++?

Java Map get 方法返回 null