संलग्न करना मैं एक स्काला परियोजना पर काम कर रहा हूं जो दो जावा पुस्तकालयों को आयात कर रहा है। खराब योजना के माध्यम से, दो जावा पुस्तकालयों में समान पैकेज नाम होते हैं, एक बिना कॉम के साथ, बिना किसी के।स्कैला आयात जावा पैकेज कॉम
समस्या यह है कि स्कैला पहले कॉम के साथ पैकेज की तलाश में है, और मुझे बता रहा है कि पैकेज मौजूद नहीं है। यदि मैं पैकेज के सामने कॉम के साथ लाइब्रेरी के सभी संदर्भ हटा देता हूं, तो संकलन कार्य करता है।
foo.jar में हम एक पैकेज company.product.core
है bar.jar में हम एक पैकेज com.company.product.other है:
एक उदाहरण है कि बनाता है भावना दिखाने के लिए।
दोनों जार classpath पर हैं, लाइन:
import company.product.core.ClassName
त्रुटि हम bar.jar निकालते हैं, तो संकलन के साथ "मूल्य कोर पैकेज com.companyname.product का सदस्य नहीं है" विफल ठीक काम करता है।
क्या स्कैला मुझे टाइपिंग कॉम से बचाने की कोशिश कर रहा है। क्या इसे आयात करने का कोई तरीका है जो मैं इसे बताता हूं?
यह काम करता है, लेकिन मुझे उत्सुकता है कि स्कैला ऐसा क्यों करता है? – Jeff
स्कैला एक पूर्व पैकेज आयात से संबंधित रिश्तेदार को सक्षम बनाता है। जैसे, "scala.collection._ आयात करें" के बाद आप "scala.collection.mutable._" प्राप्त करने के लिए बस "आयात mutable._" को कॉल कर सकते हैं। यह "नेट" पैकेज नाम के साथ कई मजेदार चीजें पैदा करता है। –
@ ट्रिस्टन आयात संग्रह ._ काम भी करता है (स्कैला पहले से ही आयात किया गया है) –