سؤال

أنا أخطب خطوط التعليمات البرمجية التالية


    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, ، ستذهب الخطوة التالية إلى

var4.add(var);

والخطوة التالية يذهب إلى var4.add(var);

هل هذا علة netbeans؟ أم أنها مع Long مقارنة.

انا استخدم Netbeans IDE 6.5.

هل كانت مفيدة؟

المحلول

لا يمكنك مقارنة الكائنات حسب القيمة. ستكون هذه المقارنة صحيحة فقط إذا كانت المراجع مقارنة بالرجوع إلى نفس الكائن. بدلا من ذلك استخدام:

if (! var.getvar2().equals(var3)) {
   ...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top