नोटिस: स्कैला 2.11, NotNull
के रूप में बहिष्कृत किया गया है।स्कैला की नॉटनुल विशेषता के लिए लाइब्रेरी समर्थन
जहां तक मैं समझता हूं, यदि आप संदर्भ प्रकार को गैर-शून्य करने के लिए चाहते हैं तो आपको जादू NotNull
विशेषता को मिश्रित करना होगा, और संकलक स्वचालित रूप से आपको null
-able मानों को रखने से रोक देगा। उदाहरण के लिए यह mailing-list thread देखें।
गैर-शून्य प्रकारों के लिए एक सभ्य लाइब्रेरी समर्थन क्या कमी है। अगर मैं एक पैकेज लिखना चाहता हूं जिसे जावा कोड को सीधे इंटरफ़ेस करने की आवश्यकता नहीं है, और मैं डिफ़ॉल्ट रूप से null
का उपयोग करने से इस पैकेज में सभी प्रकारों को रोकना चाहता हूं, तो मेरे पास
//can't actually do that, but just to give the general idea
class NString extends String with NotNull
class NMap[X,Y] extends Map[X,Y] with NotNull
...
मैं स्केला विकल्प (एक संकलक प्लगइन, या पुस्तकालय के रूप में) के लिए मुझे आदेश आसानी से एक विशिष्ट स्केला फ़ाइल में null
उपयोग की अनुमति रद्द करने में
import collections.notnull._
लिखने के लिए उम्मीद है।
क्या मानक पुस्तकालय में कई उपयोगी प्रकारों को आसानी से बल देने के लिए कोई विकल्प नहीं है?
आप स्ट्रिंग का विस्तार कर सकते हैं? मैंने सोचा कि यह अंतिम चिह्नित किया गया था। –
वास्तव में आप नहीं कर सकते हैं। अच्छी बात। मुझे लगता है कि स्ट्रिंग के लिए निहित रूपांतरण के साथ एनस्ट्रिंग को परिभाषित करने की आवश्यकता है। –
मुझे लगता है कि आप 'org.jetbrains.annotations.NotNull' जैसे कुछ ढूंढते हैं - और मुझे वह भी याद आती है। – Martin