मान लीजिए मैं एक जावास्क्रिप्ट फ़ाइलबाइंड विधि कॉल
function js_main(args){
/* some code */
var x = api_method1(some_argument);
/* some code */
}
है और मैं हमेशा की तरह
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
engine.eval(...);
अब मैं करना चाहते हैं javax.scripting
साथ इसे चलाने के लिए कोशिश मेरी जावा क्लास के साथ जावास्क्रिप्ट में api_method1
पर कॉल को संभाल लें। मैं मानचित्रण किसी तरह का लेना पसंद/कॉल की अर्थात हर बार स्क्रिप्ट कॉल api_method1(arg)
एक विधि
public Object api_method1(Object arg){ ... }
(इंजन के रूप में एक ही कक्षा में रखा) कहा जा सकता है बाध्यकारी होगा।
क्या मैं इसे प्राप्त कर सकता हूं?
विधि (प्राइमेटिव के अलावा) से डेटा को मार्शल करने के बारे में क्या? – emesx
आदिम के अलावा डेटा को आगे और आगे पास करने के लिए आप JSON का उपयोग कर सकते हैं। आपका जावा कोड JSON लाइब्रेरी का उपयोग कर जेएसओएन को क्रमबद्ध/deserialize कर सकते हैं। – sperumal
आप इसके लिए अपने आप पर बहुत अधिक हैं। आप जेएसओएन (जावास्क्रिप्ट से आसान) को क्रमबद्ध कर सकते हैं और फिर जावा में deserialize (कम आसान, लेकिन करने योग्य)। या आप अन्य जावा ऑब्जेक्ट प्रकारों को एकसाथ टुकड़े करने के लिए विभिन्न उपयोगिताओं का पर्दाफाश कर सकते हैं। – Pointy