@hotkeys बताते हैं, तो आप कीवर्ड का उपयोग module में कर सकते हैं। मैं आम तौर पर ग्रहण और मेवेन के साथ काम करता हूं और यह मेरे लिए इन मॉड्यूल बनाने के लिए व्यावहारिक नहीं है।
शायद आईडीईए या ग्रैडल के साथ एक अलग तकनीकी ढेर के लिए यह अधिक व्यावहारिक है; मुझे नहीं पता क्योंकि मैंने कभी उनका इस्तेमाल नहीं किया था।
दूसरा विकल्प पैकेज के सभी वर्गों को एक फ़ाइल के अंदर डाल रहा है। यह हमेशा व्यावहारिक या सुरुचिपूर्ण नहीं है।
मेरे लिए, package
दृश्यता इसके दस्तावेज़ मूल्य के लिए बेहद उपयोगी है। मैं जानना चाहता हूं कि बाकी परियोजना के लिए कुछ पैकेज क्या सार्वजनिक इंटरफ़ेस पेश कर रहा है। मैं फैक्ट्री कार्यान्वयन कक्षाओं को छिपाना चाहता हूं और इसी तरह।
तो जावा में पैकेज-निजी वर्गों और विधियों के लिए अपना रास्ता हैक करना संभव है, फिर भी मैं package
कीवर्ड का उपयोग करना चाहता हूं।
package com.mycompany.libraries.kotlinannotations;
import static java.lang.annotation.ElementType.CONSTRUCTOR;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.SOURCE;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Documented
@Retention(SOURCE)
@Target({ TYPE, METHOD, CONSTRUCTOR })
/**
* Use in Kotlin code for documentation purposes.
*
* Whenever a Kotlin class or method is intended to be accesible at package level only.
*
*/
public @interface PackagePrivate {
}
तो मैं किसी भी Kotlin परियोजना में यह व्याख्या का उपयोग कर सकते हैं:
मैं क्या किया है एक भी टिप्पणी के साथ एक प्रोजेक्ट बना है।
दूसरा चरण, जो कि मुझे अभी तक नहीं मिला है, और मैं कुछ बिंदु पर करना चाहता हूं, इसे पीएमडी नियम बना रहा है ताकि इसे मैवेन (या उस मामले के लिए कोई अन्य निर्माण उपकरण) के साथ लागू किया जा सके। pmd प्लगइन के साथ मेरे आईडीई में नियम के उल्लंघन देखने में सक्षम हो।
फिलहाल कोटलिन pmd (यानी अपने मॉड्यूल के साथ) समर्थित भाषाओं में से एक नहीं है। लेकिन पीएमडी सक्रिय विकास में है और कोटलिन लोकप्रियता में बढ़ रहा है, इसलिए किसी मौके पर इसे विकसित करने का मौका है। यह सिर्फ मेरा सबसे अच्छा अनुमान है।
मुझे आंतरिक पसंद है, लेकिन हम जावा 9 में बहुत बेहतर तय करेंगे, हालांकि मैंने कभी नहीं देखा है कि कोई भी कोड का उपयोग करने के लिए एक ही पैकेज बनायेगा ... आखिरकार अगर कोई मॉड्यूलरिटी का उल्लंघन करने के लिए इतना दृढ़ संकल्प रखता है यदि आवश्यक हो तो वह सिर्फ कोड पेस्ट करेगा ... जो मैं यहां चिंतित हूं वह उपयोगिता है। क्योंकि बस एक फ़ाइल में कोड का टन डालना गूंगा है ... – vach
@vach मैंने वास्तव में देखा - और किया - वह। कुछ पुस्तकालय आपके उपयोग के मामलों से निराशाजनक रूप से अज्ञानी हैं (इसका मतलब यह नहीं है कि यह अच्छा अभ्यास है) – Lovis
ठीक है लेकिन अभी मैं कोटालिन को एक जावा प्रोजेक्ट माइग्रेट कर रहा हूं, और मेरे पास बहुत अच्छी दृश्यता लागू है, टिपिकल इन कुछ सुविधाएं हैं जो बनी हैं 4-5 कक्षाएं जिनमें से केवल एक बाहरी दुनिया के लिए दृश्यमान है ... अब कोटलिन के साथ मेरे पास एक ही दृश्यता रखने का कोई विकल्प नहीं है जब तक कि मैं सब कुछ एक ही फाइल में नहीं डालता ... क्या मैं इसे सही ढंग से समझता हूं या कुछ अन्य है दृष्टिकोण मैं नहीं जानता? – vach