【发布时间】:2012-05-28 12:01:12
【问题描述】:
我有一个非常奇怪的问题。当我尝试调试代码时,sts 完全忽略了代码。
下面是我非常简单的代码,我想知道为什么值没有改变,当我调试时,从{ 到client.employmentKindOfWork ="asdasd" 的行没有被执行。它跳过所有内容并直接跳转到 client.save()。
Client client = Client.FindById(caseInstance.clientIdClient);
if (client!=null) {
client.clientMailAddr1="sdfsdfsf"
client.isDelete = true
client.employmentKindOfWork ="asdasd"
client.save()
}
我尝试了以下步骤:
- 通过向导命令清理
- 点击项目然后清理。
- 构建项目几次。
- 打开和关闭 STS。
- 创建新工作区,然后再次导入项目。
- 在首选项中添加此行?Java>je 编辑和默认 vm -XX:+UseParallelGC
- 右键刷新项目刷新项目
- 通过命令向导重新编译
所有这些都不起作用!
请。建议任何我没有尝试过的东西,除了更新之外可能会解决这个问题,因为我所有的队友都有我拥有的相同版本并且他们没有这个问题。
【问题讨论】:
-
一些问题:只有在调试器中单步执行时才会出现这种情况,还是在不使用调试器时也会出现这种情况?你确定
client真的不为空吗?删除 if 语句会发生什么?在每次调用更改client之后添加 sys.out.println 语句会发生什么?客户的价值观是否正在更新?确保您的 Java 编译器首选项设置为在类文件中包含行号。 -
它在调试器和它不被使用时都会发生。是的,我确信它不为空,因为它进入 If 语句并跳转到 client.save()。不,这些值没有被更新,这就是为什么我将它设置为调试模式以查看发生了什么,并且保存之前的行被忽略。原始代码没有 IF 并且没有任何反应,它仍然跳过行。当您说“确保您的 Java 编译器首选项设置为在类文件中包含行号”时。我在哪里可以看到?抱歉,我是 java 和 sts 的新手。谢谢。
-
实际上我看到了“Java 编译器首选项设置为在类文件中包含行号”。是的,已检查。
标签: spring debugging sts-springsourcetoolsuite