2011-12-08 8 views
7

अगर मैं अपने स्काला परियोजना 'उपयुक्त' जावा के साथ बनना चाहता था, कि यह व्यावहारिक जावा कोड से स्काला एपीआई कॉल करने के लिए करते हैं (ताकि गैर स्काला प्रोग्रामर भी योगदान कर सकते हैं), यह में परियोजना लंबोक उपयोग करने के लिए संभव हो जाएगा जावा कोड? या उनमें से दो अच्छी तरह से नहीं मिलता है?क्या परियोजना लंबोक स्कैला के साथ अच्छी तरह से काम करता है?

मैं स्काला IDE के साथ ग्रहण में विकसित करने की जाएगी।

संपादित करें: मुझे वास्तव में क्या मतलब था: क्या स्काला संपादक ग्रहण में लंबित कोड देखेंगे, या केवल जावा कोड जिसे मैंने वास्तव में टाइप किया है?

+1

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

उत्तर

9

मुझे यकीन है कि तुम क्या, पूछ रहे हैं के बाद से स्काला और जावा बाईटकोड स्तर में अंतर-संचालन कर रहे हैं नहीं कर रहा हूँ, यह जहां बाईटकोड से आते हैं परवाह नहीं है। तो मेरा मानना ​​है कि आपका जावा कोड जो लंबोक एनोटेशन का उपयोग करता है अभी भी स्कैला प्रोग्राम से कॉल किया जा सकता है।

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

उदाहरण के लिए, @Data वाला वर्ग स्केल में case class हो सकता है।

case class Data(name: String, value: Int) 

और आप इसे सामान्य कोड की तरह जावा कोड में एक्सेस कर सकते हैं।

Data d1 = new Data("someData", 1); // Using constructor 
Data d2 = Data.apply("someData", 1); // Or using factory 

और Data सब अद्भुत toString, equals, hashcode आदि होगा ....।

+0

+1 मैं इस बारे में इस बारे में सोच नहीं रहा था, लेकिन यह मेरे आधे प्रश्न का उत्तर देता है। प्रश्न को संपादित करके मैं जो चाहता हूं उसे निर्दिष्ट करूंगा। –

+0

असल में, मुझे पूछने से पहले खुद को सोचना चाहिए था। बुरा सवाल –

9

स्कैला संपादक भाग जेनरेट कोड को ठीक से देखेगा। अधिकांश क्या lombok करता है के

कुछ कल्पना या अन्य, स्केला के रूप में ही इस प्रकार है। कहाँ lombok भटक canEqual है और कार्यान्वयन, जो संयोग से सटीक एक ही बात स्केला के लिए मामला वर्गों IIRC उत्पन्न करता है के बराबर होती है, तो भी कि संगत :)

अस्वीकरण है: मैं lombok परियोजना के लिए एक कोर योगदानकर्ता हूँ।

+0

हम्म, मुझे वर्तमान में मेरे स्केल-टेस्ट कोड के साथ समस्याएं हैं जो @RequiredArgsConstructor द्वारा उत्पन्न मेरे कन्स्ट्रक्टर को नहीं ढूंढ रही हैं। आश्चर्य है कि यह मेरे सेटअप या बग में कोई समस्या है। – eduardohl

+1

बस इसे हल किया गया, यह जावा कोड से पहले स्कैला कोड को संकलित करने में एक समस्या थी, इसे बदलने के लिए: प्राथमिकताएं >> स्कैला >> कंपाइलर >> बिल्डमैनेजर टैब >> मिश्रित से जावाटेनकाला – eduardohl

+0

@rzwitserloot में संकलन बदलें जहां स्थित स्कैला केस कक्षाओं में उन पर 'डेटा' एनोटेशन है, क्या आप ऐसे कोड के संकलन के लिए एक्लेप्सेक पर जावैक का उपयोग करने की सलाह देंगे? –

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

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