【问题标题】:ArrayList initializing as null?ArrayList 初始化为空?
【发布时间】:2012-10-27 05:27:39
【问题描述】:

由于我的其他线程不清楚并且我不了解真正的问题,所以重新询问。

public class Test extends Survey
{
    ArrayList<Answer> answerList;
    ArrayList<Question> questionList;

    public Test()
    {
    questionList = new ArrayList<Question>();
    answerList = new ArrayList<Answer>();
    ...
    }
 ...
}

在 Eclipse 调试器中,answerList 值显示为 null,而 questionList 不是。什么给了?

编辑:有没有可能我的调试器搞砸了?我无法让它在我设置断点的地方停下来。它停止在旧的并忽略新的。我没有设置新的配置或任何东西。

【问题讨论】:

  • 您以后是否重新声明 answerList?它在哪里显示为空?你能发一个 [SSCCE](http:/sscce.org) 吗?
  • 你的断点在哪里?如果它在answerList = new ArrayList&lt;Answer&gt;(); 的行中,那就很有意义了
  • 该代码没有问题;您可能稍后将 answerList 重新初始化为 null。
  • @onemach 有一个很好的观点。如果您的断点位于初始化行,则该行尚未执行注释,并且该值仍将为空。
  • 断点在该行执行之后,它显示为null。不,它不会在以后重新初始化为null。但是,我现在遇到了调试器在新断点处停止的问题。这可能有关系吗?我没有更改配置或任何东西,但它忽略了新断点。

标签: java arraylist null initialization


【解决方案1】:

将断点保留在下一行

 answerList = new ArrayList<Answer>();

然后检查答案列表。 因为如果你的断点在初始化行,那该行还没有执行,那个时候值会是空的。

【讨论】:

  • 我的调试器有没有可能搞砸了?我无法让它在我设置断点的地方停下来。它停止在旧的并忽略新的。我没有设置新的配置或任何东西。无论如何,断点在该行之后。
  • 你是在eclipse中编译吗?如果没有,请确保您的源符号与编译后的代码同步。
  • 是的,我在 eclipse 中做所有事情。
  • @iiacp 重启你的eclipse然后调试它。或者使用相同的代码创建一个新类,然后将调试点放在这一行之后。
【解决方案2】:

你的断点在哪里? 如果它在answerList = new ArrayList&lt;Answer&gt;(); 的行中,那就太有意义了。当您设置断点并在其上进行 eclipse 中断时,您所看到的一切都是在执行该行之前

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2015-08-11
    • 2018-09-04
    • 2015-06-28
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    相关资源
    最近更新 更多