تنفيذ البرنامج النصي داخل الأسلوب مع بيانشيل

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

  •  05-07-2019
  •  | 
  •  

سؤال

ولست متأكدا حقا كيف يمكن تفسير هذا، ولكن هنا المثل:

وأريد أن أكون قادرة على "إدراج" بعض الأوامر إلى أجزاء من قانون بلدي التي سيتم تحميلها من الملفات الخارجية. تحليل وتنفيذ هذه الأوامر، ولدي يفترض أن استخدام بعض البرمجة مثل طريقة حدة التقييم بيانشيل ل. المشكلة هي أنه لا يبدو أن تعترف المثال / طريقة انها داخل. وكمثال بسيط للغاية، وأنا أريد أن أفعل شيئا مثل

    public void somethingHappens()
    {
        Foo foo = new Foo();
        Interpreter i = new Interpreter();
        i.eval("print(foo.getName());");
    }

هل هذا ممكن؟ هل يجب استخدام أدوات البرمجة الأخرى؟

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

المحلول

إذا كنت تستخدم 1.6، يمكنك استخدام المدمج في دعم جافا سكريبت.

جافا البرمجة للمبرمجين يفسر كيفية استيراد فئات Java في السيناريو الخاص بك.

ورمز المثال 9 في هذه يوضح كيفية تمرير الكائنات في نطاق البرنامج النصي.

نصائح أخرى

وعن طريق بيانشيل، وهذا هو شيء يمكنك أن تجرب

package beanshell;

import bsh.EvalError;
import bsh.Interpreter;

public class DemoExample {

    public static void main( String [] args ) throws EvalError  {
        Interpreter i = new bsh.Interpreter();
        String usrIp = "if(\"abc\".equals(\"abc\")){"
                + "demoExmp.printValue(\"Rohit\");"
                + "}";

        i.eval(""
                + "import beanshell.DemoExample;"
                + "DemoExample demoExmp = new beanshell.DemoExample();"
                + ""+usrIp);
    }

    public static void printValue(String strVal){
        System.out.println("Printing Value "+strVal);
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top