سؤال
لست متأكدًا حتى من كيفية الحصول على هذا QN. ولكن ، نأمل أن تكون هناك طريقة سهلة للقيام بذلك بلغة ديناميكية مثل Groovy.
قل أن لدي خدمة صفية ، حيث أقوم بتفويض منطق العمل. الطرق فيهfunA(), funB()... funX()
.
الآن لدي فئة وحدة تحكم ، حيث أسمي إغلاق الخدمة ، والتي يمكن استدعاؤها مثل service.funa (). استنادًا الآن إلى متغير (يمكن أن يكون له قيم A, B ... X
) ، أحتاج إلى إغلاق الخدمة الصحيح. في الأساس لتجنب كتابة الكثير من البيانات الشرطية. شيء مثل service."fun+var"()
ستفعل. لست متأكدًا مما إذا كان من الممكن استبدال المتغير في اسم الإغلاق (الوظيفة). أو بأي طريقة عن طريق تمرير الوظيفة (الاسم) كمعلمة ... لست متأكدًا
أعتقد أن PHP لديه ميزة مماثلة http://php.net/manual/en/functions.variable-functions.php
شكرا على أي مؤشر ..
المحلول
نعم ، هذا ممكن. هذا يجب أن يفعل ما تريد:
service."fun${var}"()
العنوان الصحيح هو استدعاء الطريقة الديناميكية.