कभी-कभी दो बार सोचना अच्छा होता है और अकेले स्थैतिक कोड विश्लेषण पर भरोसा नहीं करना चाहिए

Apr 19 2023
आयात करने या न करने के लिए, यह TypedArrays के उपयोग में अंतर है
एंड्रॉइड केटीएक्स कुछ एंड्रॉइड फ्रेमवर्क प्रकारों के लिए कोटलिन एक्सटेंशन फ़ंक्शंस का एक छोटा सा सेट प्रदान करता है। इन कार्यों में से एक TypedArray है।
Unsplash पर जेवियर एलेग्यू बैरोस द्वारा फोटो

एंड्रॉइड केटीएक्स कुछ एंड्रॉइड फ्रेमवर्क प्रकारों के लिए कोटलिन एक्सटेंशन फ़ंक्शंस का एक छोटा सा सेट प्रदान करता है । इनमें से एक कार्य है जिसे 2018 में पेश किया गया था और यह ब्लॉक का परिणाम देता है। इसके अलावा यह आमतौर पर Java -with-resources स्टेटमेंट के स्थान पर उपयोग किए जाने वाले कोटलिन StdLib कार्यान्वयन की नकल करने के लिए स्वचालित रूप से रीसायकल करता है।TypedArray.use {}TypedArray Closeable.use {} try

कुछ समय बाद 2021 में एंड्रॉइड 12 के साथ , इंटरफ़ेस को TypedArrayलागू करने के लिए प्रकार शुरू हुआ Closeable, closeमूल recycleविधि के लिए एक उपनाम के रूप में एक विधि प्रदान करता है। इसलिए Closeable.use {}इसका उपयोग सभी नए एंड्रॉइड प्लेटफॉर्म पर किया जा सकता है और चूंकि इसे आयात करने की आवश्यकता नहीं है, इसका उपयोग तब किया जाएगा जब TypedArray.use {}स्पष्ट रूप से आयात नहीं किया जाएगा।

2022 में कभी-कभी, जब मेरी सभी परियोजनाओं को बिना किसी समस्या के कुछ समय के लिए 31+ के एंड्रॉइड एपीआई स्तर के साथ लक्षित और संकलित किया गया था , मैं कुछ दिनों के भीतर TypedArray.use {}दो अलग-अलग परियोजनाओं के कोड में उपयोग करने में कामयाब रहा। चूँकि केवल तीन अक्षर और एक कर्ली ब्रैकेट टाइप करना आसान है, इसलिए मैंने ऑटो कम्प्लीट का उपयोग करने की जहमत नहीं उठाई और इसलिए Android KTX फ़ंक्शन को आयात नहीं किया। लिंटर शिकायत नहीं कर रहा था और सभी परीक्षण सफल रहे। केवल "पुराने" डिवाइस के साथ परीक्षण करने पर, सब कुछ अलग हो गया और फिक्स एक साधारण आयात था:

import androidx.core.content.res.use