Java Language
मॉड्यूल
खोज…
वाक्य - विन्यास
- java.xml की आवश्यकता है;
- सार्वजनिक java.xml की आवश्यकता है; # उपयोग के लिए आश्रितों के लिए मॉड्यूल को उजागर करता है
- निर्यात com.example.foo; # आश्रित इस पैकेज में सार्वजनिक प्रकारों का उपयोग कर सकते हैं
- निर्यात com.example.foo.impl को com.example.bar; # एक मॉड्यूल के लिए उपयोग को प्रतिबंधित
टिप्पणियों
मॉड्यूल के उपयोग को प्रोत्साहित किया जाता है, लेकिन इसकी आवश्यकता नहीं है, यह मौजूदा कोड को जावा 9 में काम करना जारी रखने की अनुमति देता है। यह मॉड्यूलर कोड के क्रमिक संक्रमण के लिए भी अनुमति देता है।
किसी भी गैर-मॉड्यूलर कोड को संकलित किए जाने पर अनाम मॉड्यूल में डाल दिया जाता है। यह एक विशेष मॉड्यूल है जो अन्य सभी मॉड्यूल से प्रकार का उपयोग करने में सक्षम है, लेकिन केवल उन पैकेजों से है जिनके पास exports
घोषणा है ।
अनाम मॉड्यूल में सभी पैकेज स्वचालित रूप से निर्यात किए जाते हैं।
कीवर्ड, जैसे module
आदि ..., मॉड्यूल घोषणा के भीतर उपयोग में प्रतिबंधित हैं, लेकिन कहीं और पहचानकर्ता के रूप में इस्तेमाल किया जा सकता है।
एक बुनियादी मॉड्यूल को परिभाषित करना
मॉड्यूल मॉड्यूल- module-info.java
नामक फ़ाइल में परिभाषित किया गया है, जिसका नाम मॉड्यूल विवरणक है। इसे सोर्स-कोड रूट में रखा जाना चाहिए:
|-- module-info.java
|-- com
|-- example
|-- foo
|-- Foo.java
|-- bar
|-- Bar.java
यहाँ एक सरल मॉड्यूल विवरणक है:
module com.example {
requires java.httpclient;
exports com.example.foo;
}
मॉड्यूल नाम अद्वितीय होना चाहिए और यह अनुशंसा की जाती है कि आप उसी रिवर्स-डीएनएस नामकरण संकेतन का उपयोग करें जैसा कि संकुल द्वारा उपयोग किया जाता है ताकि यह सुनिश्चित हो सके।
मॉड्यूल java.base
, जिसमें जावा की बुनियादी कक्षाएं शामिल हैं, किसी भी मॉड्यूल को स्पष्ट रूप से दिखाई देता है और इसे शामिल करने की आवश्यकता नहीं है।
घोषणा की requires
कि हम अन्य मॉड्यूल का उपयोग कर सकते हैं, उदाहरण के लिए मॉड्यूल java.httpclient
आयात किया गया है।
एक मॉड्यूल यह भी निर्दिष्ट कर सकता है कि यह किस पैकेज को exports
और इसलिए यह अन्य मॉड्यूल को दिखाई देता है।
exports
खंड में घोषित पैकेज com.example.foo
अन्य मॉड्यूल को दिखाई देगा। com.example.foo
किसी भी उप-पैकेज को निर्यात नहीं किया जाएगा, उन्हें अपने स्वयं के export
घोषणाओं की आवश्यकता है।
इसके विपरीत, com.example.bar
जो exports
खंडों में सूचीबद्ध नहीं है, अन्य मॉड्यूल को दिखाई नहीं देगा।