我发现了一个关于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()方法没有任何改变。
答案 0 :(得分:2)
您是否在调试器中有任何自定义代码(变量视图中的“更改值”接受语句)可能会更改列表?像list.remove()
一样作为某个变量的自定义值?
同时检查变量视图中变量的“详细格式化程序”,此列表中是否有一些代码或其他变量。
答案 1 :(得分:0)
如果列表是在单个线程应用程序之前创建的,那是不可能的。