جافا في المشغل
-
29-10-2019 - |
سؤال
للمرة المليون ، كنت أود أن استخدام 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 قد تم تحميلها بالكامل بالفعل حتى يتم النظر في أي شيء من هذا القبيل.