Netbeans 6.5 调试问题

发布于 2024-08-03 03:53:43 字数 735 浏览 4 评论 0原文

我正在调试以下代码行,


    if (var.getvar2() != var3) {
           var4.add(var);
    } else {
           isNeeded= true;
           if (incomingPublishedDate.compare(modifiedDate) < 0) {
               importNeeded = true;
           } else {
               var4.add(var);
           }
   }

这里 var.getvar2()var3 的类型为 Long。 调试时,当条件类似于

10000 != 10000

if 时,其计算结果应为 false。但是从第一个 if 开始,下一个 Step Over

var4.add(var);

转到 var4.add(var);

这是 Netbeans 错误吗?或者是与Long 进行比较。

我正在使用 Netbeans IDE 6.5

I am debugging the following lines of code


    if (var.getvar2() != var3) {
           var4.add(var);
    } else {
           isNeeded= true;
           if (incomingPublishedDate.compare(modifiedDate) < 0) {
               importNeeded = true;
           } else {
               var4.add(var);
           }
   }

Here var.getvar2() and var3 are of type Long.
While debugging, when the condition goes like

10000 != 10000

the if should evaluate to false. But from the first if, the next Step Over goes to

var4.add(var);

and the next Step Over goes to var4.add(var);

Is this a Netbeans bug? Or is it with the Long comparision.

I am using Netbeans IDE 6.5

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

马蹄踏│碎落叶 2024-08-10 03:53:43

您不能按值比较对象。仅当比较的两个引用引用同一对象时,该比较才是正确的。而是使用:

if (! var.getvar2().equals(var3)) {
   ...
}

You cannot compare objects by value. That comparison would only be true if the two references compared refer to the same object. Instead use:

if (! var.getvar2().equals(var3)) {
   ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文