कोटर्स और गुणों के लिए जावा सम्मेलनों का पालन करने वाली विधियाँ (नाम के साथ शुरू होने वाले नाम के साथ कोई तर्क-वितर्क विधियाँ और सेट से शुरू होने वाले नामों के साथ एकल-तर्क विधियाँ) कोटलीन में गुणों के रूप में प्रदर्शित की जाती हैं। लेकिन, जब एक जावा गेट्टर / सेटर जोड़ी के लिए एक संपत्ति पैदा करते हैं, तो कोटलिन पहले एक गेट्टर की तलाश करता है। गेट्टर प्रकार से प्रापर्टी के प्रकार का पता लगाने के लिए पर्याप्त है। दूसरी ओर, संपत्ति नहीं बनाई जाएगी यदि केवल एक सेटर मौजूद है (क्योंकि कोटलिन इस समय सेट-केवल गुणों का समर्थन नहीं करता है)।
जब एक सेटर खेल में आता है, तो संपत्ति निर्माण प्रक्रिया थोड़ी अस्पष्ट हो जाती है। कारण यह है कि गेटटर और सेटर का अलग-अलग प्रकार हो सकता है। इसके अलावा, गेटक और / या सेटर को एक उपवर्ग में ओवरराइड किया जा सकता है, जो वास्तव में Android में EditText का मामला है।
उपरोक्त मामले में Android TextView वर्ग में एक गेटटर होता है
CharSequence getText()
और एक सेटर शून्य
setText(CharSequence)
यदि मेरे पास TextView प्रकार का एक चर होता तो मेरा कोड ठीक काम करता। लेकिन मैंने EditText क्लास का इस्तेमाल किया, जिसमें ओवरराइड गेट्टर होता है
Editable getText()
जिसका अर्थ है कि आप एक EditText के लिए एक संपादन योग्य प्राप्त कर सकते हैं और एक Editable को एक EditText पर सेट कर सकते हैं। इसलिए, कोटलिन यथोचित प्रकार का एक कृत्रिम संपत्ति पाठ बनाता है। जैसा कि स्ट्रिंग वर्ग संपादन योग्य नहीं है, इसीलिए मैं एडिट टेक्स्ट वर्ग की टेक्स्ट प्रॉपर्टी को स्ट्रिंग उदाहरण नहीं दे सकता।
ऐसा लगता है कि जैटरबिन्स जावा गेट्टर और सेटर विधियों के लिए कोटलिन गुण उत्पन्न करते समय, गेट्टर विधियों की प्रमुख भूमिका को निर्दिष्ट करना भूल गया। वैसे भी, मैंने जेट ब्रेन कोटलिन वेबसाइट पर जीथब के माध्यम से पुल अनुरोध प्रस्तुत किया है।
मुझे इस मध्यम पोस्ट में समस्या के बारे में विस्तार से बताया गया है कि कोटलिन जावा गेटर्स और सेटर्स से संपत्ति कैसे उत्पन्न करता है (अनब्रांडेड बीब्री द्वारा)