2012-05-28 38 views
0

我有一个很奇怪的问题。当我尝试调试代码时,sts完全忽略了代码。 下面是我非常简单的代码,我想知道为什么值没有改变,当我调试时,从{client.employmentKindOfWork ="asdasd"的行不被执行。它跳过所有内容并跳入client.save()。Springsource工具套件跳过代码

Client client = Client.FindById(caseInstance.clientIdClient); 
if (client!=null) { 
    client.clientMailAddr1="sdfsdfsf" 
    client.isDelete = true 
    client.employmentKindOfWork ="asdasd" 
    client.save() 
} 

我尝试以下步骤:

  1. 通过单击项目,然后清洗干净通向导命令
  2. 几次构建项目。
  3. 打开和关闭STS。
  4. 创建新工作区,然后再次导入项目。
  5. 添加此行偏好的Java> JE编辑和默认VM -XX:+ UseParallelGC
  6. 通过右击刷新该项目,并刷新
  7. 重新编译通命令向导

所有的做不行!!!

请注意。建议我没有尝试过的任何事情可能会解决这个问题,因为我所有的队友都有我拥有的版本,他们没有这个问题。

+0

一些问题:只有在调试器中单步执行时,或者在调试器未被使用时才会发生这种情况吗?你确定'client'真的不是null吗?当你删除if语句时会发生什么?每次调用“client”后添加sys.out.println语句会发生什么?客户端的价值是否被更新?确保您的Java编译器首选项设置为在类文件中包含行号。 –

+0

它发生在调试器和它没有被使用时。是的,我确定它不是null,因为它在If语句中并跳转到client.save()。不,值不会更新,这就是为什么我将其设置为调试模式以查看发生了什么并且它在那里,保存之前的行被忽略。原始代码没有IF,也没有任何反应,它仍然跳过这些行。当您说“确保您的Java编译器首选项设置为在类文件中包含行号”。我究竟能在那里看到?对不起,我是新来的Java和STS。谢谢。 – user742102

+0

实际上,我看到“Java编译器首选项设置为在类文件中包含行号”。是的,它被检查。 – user742102

回答

0

您很可能不会运行您认为自己的代码。添加一些system.out.println语句,看看它们是否到达。我的猜测是他们不是。很可能,您正在将您的课程文件编译到一个位置,但从另一个位置运行它们的过时版本。

我假设这是一个maven项目。确保在您的java构建路径(项目中的Ctrl-I)中,输出文件夹设置为target/classes和target/test-classes。

相关问题