كيفية استدعاء وظيفة Java من السلسلة المخزنة في متغير [مكرر

StackOverflow https://stackoverflow.com/questions/3038464

  •  27-09-2019
  •  | 
  •  

سؤال

تكرار ممكن:
استدعاء طريقة تسمى "سلسلة" في وقت التشغيل في جافا و ج

يجب أن أكون قادرًا على استدعاء وظيفة ، ولكن يتم تخزين اسم الوظيفة في متغير ، هل هذا ممكن. على سبيل المثال:

public void foo ()
{
     //code here
}

public void bar ()
{
     //code here
}

String functionName = "foo";

// أحتاج إلى استدعاء الوظيفة بناءً على ما هو اسم الوظيفة

سيكون Anyhelp رائعًا ، شكرًا

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

المحلول

نعم ، يمكنك استخدام التفكير. ومع ذلك ، ضع في اعتبارك أيضًا الإصدار 2nd الفعال Java ، البند 53: تفضيل واجهات على الانعكاس. إذا كان ذلك ممكنًا ، استخدم الواجهات بدلاً من ذلك. نادراً ما تكون هناك حاجة حقًا للانعكاس في رمز التطبيق العام.

أنظر أيضا

أسئلة ذات صلة

نصائح أخرى

القيام به بسهولة مع التفكير. بعض الأمثلة هنا و هنا.

أجزاء الكود الرئيسية

String aMethod = "myMethod";

Object iClass = thisClass.newInstance();
// get the method
Method thisMethod = thisClass.getDeclaredMethod(aMethod, params);
// call the method
thisMethod.invoke(iClass, paramsObj);

استخدام الانعكاس.

ها هو مثال

مع ال انعكاس API. شيء من هذا القبيل:

    Method method = getClass().getDeclaredMethod(functionName);
    method.invoke(this);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top