在Eclipse调试器中运行时,List.getSize()返回不同的结果

时间:2010-10-12 08:57:13

标签: java eclipse

我发现了一个关于eclipse调试器的奇怪之处。 首先,当一个程序作为一个简单的Java应用程序运行时,一切正常,但是当我使用调试器时,一些引用变为null,以便我捕获NullPointerException。

这是一个更奇怪的例子:

System.out.println("the list size is " + list.getSize());
System.out.println("the list size is " + list.getSize());
System.out.println("the list size is " + list.getSize());
System.out.println("the list size is " + list.getSize());

当我启动程序时,输出为:50,50,50,50。

但是当我使用调试器时输出为:50,49,48,47。这真的很奇怪,因为getSize()方法没有任何改变。

2 个答案:

答案 0 :(得分:2)

您是否在调试器中有任何自定义代码(变量视图中的“更改值”接受语句)可能会更改列表?像list.remove()一样作为某个变量的自定义值?

同时检查变量视图中变量的“详细格式化程序”,此列表中是否有一些代码或其他变量。

答案 1 :(得分:0)

如果列表是在单个线程应用程序之前创建的,那是不可能的。