java - How do I return a pointer to a user-defined class object using SWIG -
मेरे पास swig द्वारा लिपटे निम्नलिखित कोड है:
int क्लस्टर :: myController (नियंत्रक * & Amp; _controller) {_controller = my_controller; वापसी 0; }
नियंत्रक
के पास एक निजी निर्माता है।
ऐसा कुछ करने के लिए सही भर्तियां क्या है नहीं अपवाद?
सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग argv []) {नियंत्रक c = null; Int r = dan_cluster.the क्लास्टर ()। MyController (c); Println (r); Println (c.getUUID ()); }
यह उपयोगी होगा यदि आप अपवाद को प्राप्त कर रहे हैं, लेकिन मुझे विश्वास नहीं है कि आप जो भी करने की कोशिश कर रहे हैं वह संभव है। सी ++ में आप संदर्भ से एक संकेतक पास कर सकते हैं और फ़ंक्शन में पास किए गए पॉइंटर वैरिएबल में परिवर्तन कर सकते हैं, लेकिन जावा में समतुल्य कुछ नहीं है। आपको जनरेटेड आवरण की जांच करनी चाहिए, लेकिन मेरा अनुमान है कि आपका सी ++ कोड कुछ तरह से लपेटा जा रहा है:
int myController (नियंत्रक _ नियंत्रक) {_controller = my_controller; वापसी 0; }
... जो स्पष्ट रूप से आप जो चाहें नहीं करेंगे, जब आप यूयूआईडी () प्राप्त करने का प्रयास करते हैं तो एक NullPointerException की ओर जाता है।
मान लें कि मैं सही हूं, सबसे अच्छा तय करने के लिए मेरे नियंत्रक () के लिए बस एक नियंत्रक * वापस आ गया है यदि आपको वास्तव में पूर्णांक की आवश्यकता है, तो एक std :: pair (नोट: एसटीएल के किसी भी भाग को लपेटने के लिए कुछ विनम्रता की आवश्यकता है, परामर्श करें) पर विचार करें।
Comments
Post a Comment