Java执行;如果;当条件明显错误时阻止
这几乎说明了一切Java执行;如果;当条件明显错误时阻止,java,Java,这几乎说明了一切paneNum为0。由于指令指针位于if块内,函数返回false,因此对paneNum
paneNum
为0。由于指令指针位于if块内,函数返回false
,因此对paneNum<0
的测试显然是true
有什么想法吗?您正在使用正在调试的文件的最新版本。你可以认为你在陈述中,而不是在陈述中。当您处于该断点时,也可以在显示模式下运行,类似于:
System.out.println(paneNum);
System.out.println(paneNum < 0);
System.out.println(paneNum);
System.out.println(paneNum<0);
最近是否从类似于paneNum的内容更改了条件?如果强制将paneNum强制转换为整数,会发生什么情况?这是什么意思?[^@(NUL)]
我怀疑代码/编译单元不同步。罗伯特:检查一下ASCII表-^@(Ctrl+@)是如何键入null的,如果可以键入null。Ctrl+I是制表符(ASCII 9),Ctrl+H是退格符(ASCII 8),所以扩展一下,Ctrl+@将是NUL(ASCII 0)。:-)戴夫:我怀疑是编译器的错误。清理和重建没有帮助。退出Eclipse并重新启动没有任何帮助。除了最后一部分,请同意您的答案paneNum
是一个原语,因此paneNum==null
没有意义。java int的默认值是0。啊,是的,我查看了NUL并认为它是一个整数。我没有尝试打印paneNum<0,但当我打印paneNum时,它在“paneNum<0”块中显示0。此代码最近没有更改。虽然它被编译了几次,但这是我第一次追踪到它,因为它不起作用。我尝试了一个清洁和重建,但没有运气。结果是if(paneNum>=0){}else{return false;}有效。:-)