प्लेटफ़ॉर्म प्रकार
Java से नल-योग्यता
प्लेटफ़ॉर्म प्रकार, CoddyKit पर Kotlin Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Kotlin Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Kotlin Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
कोटलिन और जावा का मिलन
कोटलिन JVM पर चलता है और लगातार जावा कोड को कॉल करता है। लेकिन जावा में नल-योग्य और गैर-नल प्रकारों की कोई संकल्पना नहीं है।
तो जावा से आने वाले मान को कोटलिन कैसे संभालता है? प्लेटफ़ॉर्म प्रकारों के माध्यम से।
प्लेटफ़ॉर्म प्रकार क्या है
प्लेटफ़ॉर्म प्रकार वह प्रकार है जो कोटलिन को जावा से मिलता है और जिसकी नल-योग्यता अज्ञात होती है।
त्रुटि संदेशों में कोटलिन इसे String! के रूप में लिखता है। विस्मयादिबोधक चिह्न का अर्थ है: यह null भी हो सकता है और गैर-नल भी; कोटलिन इनमें से किसी एक विकल्प को लागू नहीं करेगा।
ढीली जाँच
प्लेटफ़ॉर्म प्रकारों के लिए कोटलिन अपनी नल-जाँच को ढीला कर देता है। आप कंपाइलर त्रुटि के बिना मान को गैर-नल मान सकते हैं।
इसका समझौता यह है कि यदि मान वास्तव में null हुआ, तो आपको रनटाइम NullPointerException मिलेगा।
प्रकार आप चुनते हैं
प्लेटफ़ॉर्म-प्रकार के मान को संग्रहीत करते समय आप तय करते हैं कि उसका प्रकार क्या होगा:
- गैर-नल
Stringके रूप में → सुविधाजनक, लेकिन जोखिमपूर्ण - नल-योग्य
String?के रूप में → सुरक्षित और स्पष्ट
यह कोटलिन उदाहरण उस चुनाव का अनुकरण करता है।
fun fromJava(): String? = "value from Java"
fun main() {
val safe: String? = fromJava()
println(safe?.length)
}जोखिमपूर्ण चुनाव
यदि आप मान को गैर-नल मान लेते हैं और स्रोत null लौटाता है, तो क्रैश असाइनमेंट या पहली बार उपयोग के समय होता है।
यही प्लेटफ़ॉर्म प्रकारों का छिपा हुआ खतरा है।
fun fromJava(): String? = null
fun main() {
try {
val risky: String = fromJava()!!
println(risky.length)
} catch (e: NullPointerException) {
println("Null came from the Java side")
}
}एनोटेशन मदद करते हैं
जावा लाइब्रेरी @Nullable और @NotNull जैसे एनोटेशन का उपयोग कर सकती हैं।
उपस्थित होने पर कोटलिन इन्हें मानता है और प्लेटफ़ॉर्म प्रकार के बजाय आपको उचित String? या String देता है।
सर्वोत्तम अभ्यास: नल-योग्य मानें
बिना एनोटेशन वाले जावा कोड को कॉल करते समय परिणाम को नल-योग्य मानना सुरक्षित आदत है।
अपने चर का प्रकार ? के साथ लिखें और हर कोटलिन नल-योग्य मान की तरह सुरक्षित कॉल का उपयोग करें।
fun fromJava(): String? = "data"
fun main() {
val value: String? = fromJava()
val length = value?.length ?: 0
println(length)
}सुरक्षात्मक सीमाएँ
जावा की सीमा को अविश्वसनीय मानें। मानों के आपके कोटलिन कोड में प्रवेश करते ही उन्हें मान्य करें या डिफ़ॉल्ट मान दें।
इसके बाद आपके बाकी कोड में साफ़-सुथरे कोटलिन प्रकारों का उपयोग होता है।
fun fromJava(): String? = null
fun main() {
val name = fromJava() ?: "default"
// from here on, name is a clean non-null String
println(name.uppercase())
}कोटलिन इसकी अनुमति क्यों देता है
कोटलिन हर जावा मान को नल-योग्य बना सकता था, लेकिन इससे जावा के साथ अंतर-संचालन अत्यधिक विस्तृत हो जाता।
प्लेटफ़ॉर्म प्रकार व्यावहारिक समझौता हैं: सुविधा के साथ सख्ती बरतने का विकल्प।
प्लेटफ़ॉर्म प्रकार पहचानना
आप स्वयं String! नहीं लिखेंगे। यह केवल आईडीई संकेतों और त्रुटि संदेशों में तब दिखाई देता है, जब आप जावा से आए मानों पर कर्सर ले जाते हैं।
! दिखाई देना इस बात का संकेत है कि आपको नल-योग्यता का निर्णय सोच-समझकर करना चाहिए।
सबको एक साथ समझना
प्लेटफ़ॉर्म प्रकार जावा और कोटलिन के बीच सेतु का काम करते हैं:
- उनकी नल-योग्यता अज्ञात होती है, जिसे
Type!के रूप में दिखाया जाता है - कोटलिन आपको नल-योग्य या गैर-नल प्रकार चुनने देता है
- संदेह होने पर सुरक्षित रहने के लिए नल-योग्य मानें
- एनोटेशन अनुमान लगाने की आवश्यकता समाप्त कर देते हैं
fun fromJava(): String? = "safe value"
fun main() {
val value: String? = fromJava()
println(value?.uppercase() ?: "missing")
}त्वरित जाँच
प्लेटफ़ॉर्म प्रकारों के बारे में अपनी समझ जाँचें।
पुनरावलोकन
आपने सीखा कि जावा की सीमा पार करते समय नल-योग्यता कैसे आती है:
- प्लेटफ़ॉर्म प्रकारों की नल-योग्यता अज्ञात होती है
- कोटलिन जाँच को ढीला करता है, लेकिन गलत धारणा से रनटाइम NPE होता है
- सीमा पर मान को नल-योग्य मानें और डिफ़ॉल्ट मान दें
- जावा एनोटेशन उचित प्रकार फिर से उपलब्ध कराते हैं
इससे नल सुरक्षा की गहन पड़ताल पूरी होती है।
एआई शिक्षक के साथ Kotlin सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 51
- पाठ
- 203
अक्सर पूछे जाने वाले प्रश्न
क्या “प्लेटफ़ॉर्म प्रकार” पाठ निःशुल्क है?
हाँ — Kotlin Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “प्लेटफ़ॉर्म प्रकार” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Kotlin Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“प्लेटफ़ॉर्म प्रकार” में मैं क्या सीखूँगा?
Java से नल-योग्यता आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Kotlin Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Kotlin Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Kotlin Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“प्लेटफ़ॉर्म प्रकार” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Kotlin Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Kotlin Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- नल-योग्य और नॉन-नल प्रकार
- सुरक्षित कॉल और एल्विस
- !! ऑपरेटर
- प्लेटफ़ॉर्म प्रकार