KotlinPoet से Kotlin Source Files बनाना
Type-safe Kotlin code generate करने के लिए KSP processor के भीतर KotlinPoet का उपयोग करें।
KotlinPoet से Kotlin Source Files बनाना, CoddyKit पर Kotlin Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Kotlin Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Kotlin Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
KotlinPoet क्या है
KotlinPoet, प्रोग्राम के माध्यम से .kt सोर्स फ़ाइलें जनरेट करने के लिए Square का Kotlin API है। यह सुव्यवस्थित, स्वाभाविक Kotlin कोड बनाता है और KSP के CodeGenerator के साथ सहज रूप से एकीकृत होता है।
निर्भरता जोड़ना
अपने प्रोसेसर मॉड्यूल में KotlinPoet जोड़िए:
dependencies {
implementation("com.squareup:kotlinpoet:1.17.0")
implementation("com.squareup:kotlinpoet-ksp:1.17.0") // KSP extensions
}FileSpec: जनरेटेड फ़ाइल का मूल
FileSpec.builder(packageName, fileName) प्रवेश बिंदु है। इसमें प्रकार, फ़ंक्शन और प्रॉपर्टीज़ जोड़िए, फिर KSP के CodeGenerator के माध्यम से परिणाम लिखिए:
val file = FileSpec.builder("com.example.generated", "MyFactory")
.addType( /* TypeSpec here */ )
.build()TypeSpec: क्लास परिभाषित करना
क्लास के लिए TypeSpec.classBuilder(), ऑब्जेक्ट के लिए objectBuilder() और इंटरफ़ेस के लिए interfaceBuilder() का उपयोग कीजिए। फ़ंक्शन, प्रॉपर्टीज़ और सुपरइंटरफ़ेस जोड़ने के लिए बिल्डर कॉल को एक के बाद एक जोड़िए:
val classSpec = TypeSpec.classBuilder("MyFactory")
.addModifiers(KModifier.PUBLIC)
.addFunction( /* FunSpec */ )
.build()FunSpec: फ़ंक्शन जनरेट करना
FunSpec.builder(name) एक फ़ंक्शन बनाता है। उसके सिग्नेचर और बॉडी को तैयार करने के लिए addParameter(), returns() और addStatement() का उपयोग कीजिए:
val funSpec = FunSpec.builder("create")
.addParameter("name", String::class)
.returns(String::class)
.addStatement("return "Hello, %L!", name")
.build()PropertySpec: प्रॉपर्टी जनरेट करना
प्रॉपर्टीज़ जनरेट करने के लिए PropertySpec.builder(name, type) का उपयोग कीजिए। KModifier.PRIVATE, KModifier.OVERRIDE निर्दिष्ट कीजिए या var के लिए mutable() का उपयोग कीजिए:
val propSpec = PropertySpec.builder("tag", String::class)
.initializer("%S", "MyClass")
.addModifiers(KModifier.PRIVATE)
.build()कोड फ़ॉर्मैट विनिर्देशक
KotlinPoet addStatement() और initializer() में फ़ॉर्मैट विनिर्देशकों का उपयोग करता है:
%L— लिटरल (बिना उद्धरण चिह्नों के)%S— स्ट्रिंग लिटरल (उद्धरण चिह्नों के साथ)%T— प्रकार का नाम (इंपोर्ट अपने-आप संभालता है)%N— नाम (किसी स्पेक या स्ट्रिंग का)
%T के साथ स्वचालित इंपोर्ट
जब आप किसी ClassName के साथ %T का उपयोग करते हैं, तो KotlinPoet आवश्यक इंपोर्ट अपने-आप जोड़ देता है। आपको इंपोर्ट स्टेटमेंट कभी हाथ से नहीं लिखने पड़ते:
val listType = ClassName("kotlin.collections", "List")
val funSpec = FunSpec.builder("items")
.returns(listType.parameterizedBy(String::class.asTypeName()))
.addStatement("return emptyList()")
.build()KSP CodeGenerator में लिखना
जनरेटेड FileSpec को KSP के CodeGenerator के माध्यम से लिखने के लिए kotlinpoet-ksp ब्रिज का उपयोग कीजिए। इससे क्रमिक बिल्ड मेटाडेटा सुरक्षित रहता है:
file.writeTo(
codeGenerator = codeGenerator,
aggregating = false
)एक्सटेंशन फ़ंक्शन जनरेट करना
एक्सटेंशन फ़ंक्शन जनरेट करने के लिए FunSpec.builder(name).receiver(type) का उपयोग कीजिए:
val extFun = FunSpec.builder("toJson")
.receiver(ClassName("com.example", "User"))
.returns(String::class)
.addStatement("return Gson().toJson(this)")
.build()व्यावहारिक उपयोग: फ़ैक्टरी जनरेटर
KSP प्रोसेसर डेटा क्लास पर @AutoFactory एनोटेशन लगाता है और प्रत्येक क्लास के लिए KotlinPoet का उपयोग करके एक कंपैनियन-फ़ैक्टरी ऑब्जेक्ट जनरेट करता है। जनरेटेड फ़ाइल को मूल क्लास के समान पैकेज में रखा जाता है।
जनरेटेड कोड का परीक्षण
डिस्क पर लिखे बिना जनरेटेड सोर्स टेक्स्ट की जांच करने के लिए यूनिट परीक्षणों में KotlinPoet के FileSpec.toString() का उपयोग कीजिए। kotlin-compile-testing-ksp लाइब्रेरी परीक्षणों में जनरेटेड कोड को कंपाइल और एक्ज़ीक्यूट कर सकती है।
त्वरित जांच
KotlinPoet में कौन-सा फ़ॉर्मैट विनिर्देशक संदर्भित क्लास के लिए आवश्यक इंपोर्ट अपने-आप जोड़ता है?
पुनरावलोकन: KotlinPoet से Kotlin स्रोत फ़ाइलें बनाना
मुख्य बातें:
FileSpec→ शीर्ष-स्तरीय फ़ाइल;TypeSpec→ क्लास/ऑब्जेक्ट/इंटरफ़ेस;FunSpec→ फ़ंक्शन;PropertySpec→ प्रॉपर्टी- प्रकार संदर्भों के लिए
%Tका उपयोग करें — इम्पोर्ट अपने-आप हो जाते हैं - KSP प्रोसेसर में
file.writeTo(codeGenerator)के माध्यम से लिखें - जनित आउटपुट का यूनिट परीक्षण करने के लिए
FileSpec.toString()का उपयोग करें
एआई शिक्षक के साथ Kotlin सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 51
- पाठ
- 203
अक्सर पूछे जाने वाले प्रश्न
क्या “KotlinPoet से Kotlin Source Files बनाना” पाठ निःशुल्क है?
हाँ — Kotlin Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “KotlinPoet से Kotlin Source Files बनाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Kotlin Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“KotlinPoet से Kotlin Source Files बनाना” में मैं क्या सीखूँगा?
Type-safe Kotlin code generate करने के लिए KSP processor के भीतर KotlinPoet का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Kotlin Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Kotlin Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Kotlin Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“KotlinPoet से Kotlin Source Files बनाना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Kotlin Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Kotlin Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- KSP बनाम KAPT: KSP तेज़ क्यों है
- अपना पहला SymbolProcessor लिखना
- KotlinPoet से Kotlin Source Files बनाना
- KSP Processors को Gradle Build में Integrate करना