2010-02-12 14 views
11

मैं ग्रोवी को थोड़ा सा देख रहा हूं और मुझे लगता है कि जावा प्रोग्राम को ग्रोवी को थोड़ा कम करके ले जाना - कक्षा को पकड़ना और इसे ग्रोवी क्लास बनाना, फिर विधि को परिवर्तित करना थोड़ा सा हो जाता है एक समय में - कुछ ग्रोवी भाषा सुविधाओं का लाभ उठाने के लिए अपेक्षाकृत सौहार्दपूर्ण तरीका हो सकता है। मैं ग्रोवी में भी नई कक्षाएं करूंगा।जावा के लिए ग्रोवी को कम से कम

सवाल:

  1. यह एक उचित तरीका परिवर्तित करने के लिए है?
  2. क्या मैं जावा में अपने सभी सार्वजनिक तरीकों और क्षेत्रों को रख सकता हूं? ग्रोवी "बस" सुपरसैट है, है ना?
  3. आप किस प्रकार की चीजें ग्रोवी में नहीं करते हैं, बल्कि जावा पसंद करते हैं?

उत्तर

13

क्या यह परिवर्तित करने का एक उचित तरीका है?

हाँ

मैं अपने सार्वजनिक तरीकों और और जावा में क्षेत्रों के सभी रखने कर सकते हैं? ग्रोवी "बस" सुपरसैट है, है ना?

लगभग एक सुपरसेट, लेकिन बिल्कुल नहीं। उदाहरण के लिए, ग्रोवी में ==.equals विधि को कॉल करता है, लेकिन जावा में यह जांचता है कि 2 संदर्भ एक ही ऑब्जेक्ट को संदर्भित करते हैं या नहीं।एक और उदाहरण है कि ग्रूवी निर्माण सरणियों

Object[] objs = new Object[] { 1, 2, 4 } 

एक अंतिम उदाहरण है कि एक ओवरलोड विधि कहा जाता है जब, ग्रूवी जब चुनने मापदंडों के क्रम प्रकार का उपयोग करता है जो विधि आह्वान करने के लिए है, जबकि जावा का उपयोग करता है के लिए इस वाक्य का समर्थन नहीं करता है संकलन-समय पैरामीटर प्रकार। This page में दो भाषाओं के बीच अंतर की एक व्यापक व्यापक सूची है।

ग्रोवी में आप किस तरह की चीजें नहीं करेंगे, बल्कि जावा पसंद करते हैं?

मैं ग्रोवी में सब कुछ लिखता हूं, क्योंकि मैं जावा से ग्रोवी के साथ अधिक उत्पादक हूं, और मैं ग्रोवी प्रोग्रामिंग का बहुत अधिक आनंद लेता हूं। अगर मैं कुछ कोड और के साथ प्रदर्शन समस्या थी तो मैं केवल जावा का उपयोग करता हूं, मैं दिखा सकता हूं कि जावा में इसे लिखने से समस्या हल हो गई है। व्यवहार में, यह वास्तव में मेरे साथ कभी नहीं हुआ है।

जावा का उपयोग करने के लिए सामाजिक-राजनीतिक कारण भी हो सकते हैं, उदा। कुछ कोडों को कई लोगों द्वारा बनाए रखने की आवश्यकता है जिनमें से कुछ ग्रोवी को नहीं जानते हैं और इसे सीखना नहीं चाहते हैं।

+0

डॉन इस उत्तर के लिए विशेष रूप से अंतिम भाग के लिए बहुत बहुत धन्यवाद। प्रारंभिक अनुकूलन शायद इतना अच्छा नहीं है और देव समय का एक बड़ा अपशिष्ट है। आप ग्रोवी में स्वतः पूर्ण कैसे पाते हैं (अच्छा, बुरा, परवाह नहीं है)? –

+0

इंटेलिजे में स्वतः पूर्ण है। पिछली बार मैंने जांच की कि यह ग्रहण/नेटबीन्स में असंतोषजनक था, लेकिन यह लगभग 6 महीने पहले था और तब से चीजें बेहतर हो सकती हैं। –

+0

मैंने पिछले सप्ताह चेक किया था और यह इतना अच्छा नहीं था। विशेष रूप से ग्रहण में स्वत: सुधार करने वाली चीज जो इतनी आश्चर्यजनक है (क्लास एक्स में एक विधि बनाओ?) ग्रोवी में नहीं हो रही थी। इस समस्या में मुझे इतनी दिलचस्पी है कि मैं रुबी में लगभग कोई स्वत: पूर्ण (नेटबीन्स) के साथ काम करता हूं लेकिन मुझे लगता है कि यह हो सकता है कि रूबी सही हो जाए। वैसे भी ... फिर से धन्यवाद। मैंने आज अपने मुफ़्त इंटेलिज को निकाल दिया, इसलिए मैं इसे देख लूंगा। –

4

Wikipedia से:

अधिकांश जावा कोड भी वाक्य रचना वैध ग्रूवी है।

और

कुछ ग्रूवी कोड जैसे कि यह जावा भाषा में होगा दिखता है, लेकिन ग्रूवी नहीं जावा का सुपरसेट है। हालांकि, कुछ असंगतताओं को छोड़कर, आमतौर पर एक .java फ़ाइल का नाम बदलकर एक .groovy एक पर कर सकता है और यह काम करेगा। ग्रोवी कोडर को कुछ तत्व छोड़ने की अनुमति देता है जो जावा में आवश्यक हैं, इसलिए ग्रोवी कोड अधिक कॉम्पैक्ट हो सकता है। यह जावा डेवलपर्स के लिए ग्रोवी सीखने की वक्र बनाता है, क्योंकि वे जावा सिंटैक्स से प्रारंभ कर सकते हैं और धीरे-धीरे ग्रोवी सुविधाओं को जोड़ना सीख सकते हैं।

आपके शेष प्रश्न के संबंध में, मुझे लगता है कि यह प्रगति का एक उचित तरीका प्रतीत होता है। मैं ग्रोवी का एक साथ उपयोग करने के लिए संबंधित वर्गों को बदलने पर ध्यान केंद्रित करने की कोशिश करता हूं, ताकि मुझे यह जानना आसान हो कि कौन से वर्ग डेवलपर्स को कार्यों को निर्दिष्ट करते समय कौन सी भाषा का उपयोग करते हैं, जो दोनों भाषाओं को नहीं जानते हैं।

+0

दिलचस्प, जो कुछ प्रश्नों को संभालता है। या यह सब, शायद। –

संबंधित मुद्दे