ruby - jruby: java class accepts arguments in IRB but returns error when called from a class -
मैं एक वर्ग का उपयोग कर रहा हूं जो overridden methods स्वीकार करता है अर्थात वैकल्पिक तर्क हस्ताक्षर (यह निश्चित नहीं है कि यदि इस मामले में मामला है, लेकिन हो सकता है)
जब मैं इसे आईआरबी से कहता हूं यह अपेक्षा के अनुरूप काम करता है, उदाहरण के लिए, यह तर्कों को स्वीकार करता है
(फ़िल्टरिंग नामस्थान और पासवर्ड [फ़िल्टर किए गए] जहां गुप्त सामान गुप्त रखने की आवश्यकता होती है और मेरी कंपनी खुश है)
jruby-1.5.0 & gt; 'जावा' = & gt; सच jruby-1.5.0 & gt; Dir.glob ( '। Lib / जावा / * जार') प्रत्येक {|। जार | जार} = & gt; ["Lib / java / [filtered] .jar", "lib / java / [filtered] .jar", "lib / java / [फ़िल्टर] .jar"] jruby-1.5.0 & gt; आयात करें "[फ़िल्टर किया गया] .His351n1" = & gt; जावा :: [फ़िल्टर्ड] :: His351n1 jruby-1.5.0 & gt; ब्रोकर = [फ़िल्टर्ड]। ब्रोकर.न्यू ('[फ़िल्टर्ड]', '[फ़िल्टर्ड]') = & gt; # & LT; जावा :: [फ़िल्टर्ड] :: ब्रोकर: 0x4c4936f3 & gt; Jruby-1.5.0 & gt; आरपीसी = "[फ़िल्टर्ड]" = & gt; "[फ़िल्टर]" jruby-1.5.0 & gt; उसका = His351n1.new (ब्रोकर, आरपीसी) = & gt; # & LT; जावा :: [फ़िल्टर्ड] :: His351n1: 0x7fb6a1c4 & gt;
और यहां मेरा नमूना और मिलान कोड है
से पहले (: प्रत्येक) do @base = Legacy :: base.new समाप्त करें "इसे बनाने चाहिए वैध his351n1 वस्तु "अपने = @ base.create_his351n1 डालता है his.inpsect अंत # से विरासत :: बेस def make_his351n1 उसकी = His351n1.new (build_broker, rpc) अंत
और अंत में, त्रुटि, जो उसकी 351n1.new
1 के लिए कॉल में विफल रहता है) तर्क 'विरासत :: बेस में एक मान्य उसकी 351n1 वस्तु बनाना चाहिए' गलत # तर्कों के (0 के लिए 2)
चीजों को जटिल बनाने के लिए, आईआरबी पर, यह भी स्पष्ट रूप से वैध है:
jruby-1.5.0 & gt; उसका = His351n1.new = & gt; # & LT; जावा :: [फ़िल्टर्ड] :: His351n1: 0x5ad3c69c & gt;
इसके अलावा, यहां ओवरराइड जावा विधियां हैं
सार्वजनिक His351n1 () {super (); } सार्वजनिक His351n1 (ब्रोकर ब्रोकर) {यह (ब्रोकर, DEFAULT_SERVER); } सार्वजनिक His351n1 (ब्रोकरसेवा बीएस) {यह (बीजेटब्रॉकर (), बी.एस.टीस्टिंग ()); } सार्वजनिक His351n1 (ब्रोकर ब्रोकर, स्ट्रिंग सर्वरएडीडीआर) {सुपर (ब्रोकर, सर्वरएडर, "स्ट्रिंग", सच); } सार्वजनिक His351n1 (अंतिम ब्रोकर ब्रोकर, अंतिम स्ट्रिंग सर्वरएडीडी, अंतिम स्ट्रिंग लाइब्रेरी) {सुपर (ब्रोकर, सर्वर एड्रेस, लाइब्रेरी, सच); }
ऐसा लगता है कि आपको ऑब्जेक्ट के प्रारंभ में पूरे नेमस्पेस की आवश्यकता होती है उर्फ:
उसका = Java :: [filtered_namesapce] :: His351n1.new (build_broker, rpc)
Comments
Post a Comment