java调试器将方法求值为false,但当步骤完成时,该方法将返回true

8fsztsew  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(221)

正如标题所示,我在intellij中面临着一个奇怪的情况,我使用了以下代码:

if(isCorrect(myObj)) {              //isCorrect(myObj) in evaluate window returns false.
...
}

但是当我使用 F7 它准确地返回真值。它弄乱了我的代码流程。我无法在if块中运行代码。如何解决这个问题?
方法 isCorrect(myObj) 检查三件事:
myobj中的表成员为空 !myObj.table myobj中的列表大小为1 myObj.list.size() == 1 列表中第一个元素上的模式匹配器 Pattern.compile(regex).matcher(myObj.list[0]).find() 代码如下:

boolean isCorrect(A myObj) {
  Table table = myObj.table
  return !table && myObj.list.size() == 1 && Pattern.compile(regex).matcher(myObj.list[0]).find()
}

当我进入方法时,每个条件都会求值为true。所以方法应该返回true。但不知何故,evaluate窗口的计算结果为false。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题