سؤال

ولدي متغير من نوع Hashmap<String,Integer>.

في ذلك، قد يكون قيمة عدد صحيح للذهاب بعض التلاعب تبعا لقيمة متغير العلم. أنا فعلت هذا من هذا القبيل ...

Hashmapvariable.put( somestring,
    if (flag_variable) {
     //manipulation code goes here
     new Integer(manipulated value);
    } else {
     new Integer(non-manipulated value);
    }
);

ولكن أحصل على خطأ:

<اقتباس فقرة>   

خطأ في بناء الجملة على رمز (ق)، في غير محله   بنيات.

وبناء على دعوة Hashmapvariable.put.

وأنا أيضا الحصول على خطأ آخر

<اقتباس فقرة>   

خطأ في بناء الجملة على رمز ")"، حذف هذا   رمزية.

وفي المباراة النهائية ")؛" خط. لكنني لا استطيع حذف ")." - في الأقواس الختامي لاستدعاء الأسلوب وضع

وأنا لا أحصل على هذا. ما الخطأ الذي أفعله؟

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

المحلول

ولا يمكنك وضع بيان في استدعاء الأسلوب.

ولكن، خيار واحد يمكن أن يكون لجعل أسلوب بإرجاع Integer مثل:

private Integer getIntegerDependingOnFlag(boolean flag)
{
    if (flag)
        return new Integer(MANIPULATED_VALUE);
    else
        return new Integer(NON-MANIPULATED_VALUE);
}

وبعد ذلك، يمكنك إجراء مكالمة من هذا القبيل:

hashmap.put(someString, getIntegerDependingOnFlag(flag));

نصائح أخرى

 new Integer(flag_variable ? manipulated value : non-manipulated value)

هل خدعة

وتحرير: في جاوا 5، أفترض يمكنك أيضا كتابة

hashmap.put(someString, flag_variable ? manipulated value : non-manipulated value)

ونظرا لصناعة السيارات في الملاكمة.

وهذه ليست خطة، حتى إذا التصريحات لا تصل قيمته إلى قيمة. سيكون لديك لاستخدام شيء ثلاثي إذا (اسم يهرب مني لسبب الآن) أو إنشاء وظيفة، وشخص آخر وقال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top