سؤال

للمرة المليون ، كنت أود أن استخدام IN المشغل في جاوة ، على غرار IN المشغل في سكل.يمكن تنفيذه فقط كسكر نحوي مترجم.لذلك هذا

if (value in (a, b, c)) {
}
else if (value in (d, e)) {
}

...سيكون حقا رهيبة.في الواقع ، ما سبق هو نفس البناء المطول إلى حد ما (وغير المتكيف مع الأوليات) هنا:

if (Arrays.asList(a, b, c).contains(value)) {
}
else if (Arrays.asList(d, e).contains(value)) {
}

أو مثل هذا ل int, long وأنواع مماثلة:

switch (value) {
  case a:
  case b:
  case c:
    // ..
    break;

  case d:
  case e:
    // ..
    break;
 }

أو ربما يمكن أن يكون هناك تطبيقات أكثر كفاءة.

السؤال:

هو شيء من هذا القبيل ستكون جزءا من جافا 8?كيف يمكنني تقديم مثل هذا الاقتراح, ان لم?أم أن هناك أي بناء مكافئ يمكنني استخدامه الآن?

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

المحلول

باستخدام op4j :

Genacodicetagpre

باستخدام نفس الأسلوب ، يمكنك إنشاء فئات مساعدة ، رمز علامة ترميز تركيبي مع طريقة إنشاء رمز علامة: Genacodicetagpre

باستيراد ثابت ، يمكنك كتابة: Genacodicetagpre

نصائح أخرى

يمكنك كتابة طريقة مساعدة للقيام بذلك. Genacodicetagpre

كان هناك اقتراح قديم جدا ل جمع الحرفية.

حاليا هناك Sets.newHashSet في الجوافة التي تشبه إلى حد كبير Arrays.asList.

أنت تبحث عن عملية مجتمع Java

أشك في توفر شيء مثل عامل IN ، حيث توجد بالفعل طرق متعددة للقيام بذلك (مثل استخدام رمز التبديل) كما أشرت أنت بنفسك.

وأعتقد أن قائمة متطلبات عملات المشروع و J8 قد تم تحميلها بالكامل بالفعل حتى يتم النظر في أي شيء من هذا القبيل.

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