اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر (معدل)

ربما لأنك تستخدمين المعامل ==. وهو معامل نستخدمه مع ال primitive data types أي مع أنواع البيانات البدائية مثل int و float و double .. إلخ. لكنها لاتصلح للاستخدام مع البيانات من نوع object أي مع الكائنات لأنها في هذه الحالة ستقوم بمقارنة (المرجع) وليس القيمة التي يحملها.
يجب استخدام التابع equal.مثلاً:

import java.math.BigInteger;

public class JavaApplication19 {

    public static void main(String[] args) {
        BigInteger x = new BigInteger("15");  // object  متغير من النمط 
        BigInteger y = new BigInteger("15");   // object  متغير من النمط 
       
        System.out.println(x.equals(y));   // true
        System.out.println(x==y);   // false 
    
    }
    
}

 

تم التعديل في بواسطة Ali Haidar Ahmad
  • 0
نشر

من الصعب مساعدتك دون روئية أي جزء من الكود.

ولكن بفرض أنه يتم استخدام == في عملية المقارنة، وهذا يعني أنه سيتم مقارنة في حال كان المتغيرين يدلان على نفس المكان في الذاكرة بدلاً من اختبار القيمة الحقيقية لكل متغيّر، وبالتالي ستعيد false.

أما لاختبار قيم المتغيّرات من نوع integer يتم استخدام Integer.equals بدلاً من ==، مثال:

if (firstNumber.equals(secondNumber){
    System.out.println("true");
}else{
    System.out.println("false");
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...