यह इसकी अनुमति नहीं देता है क्योंकि जावा डिज़ाइनर (सही ढंग से) ने मान्यता दी है कि सी और सी ++ में बूलियन/पूर्णांक ओवरलोडिंग त्रुटियों का एक महत्वपूर्ण स्रोत था।
(मैं कुछ डिजाइन औचित्य में लिखित रूप में देख याद है कि है, लेकिन मैं यह नहीं मिल सकता है।)
उदाहरण के लिए:
if (i = 0) {
...
}
कानूनी है, लेकिन शायद एक बग है कि एक आवेदन में सी या सी ++ लिखा है।
जावा boolean
बनाकर और अन्य पूर्णांक डेटाटाइप को अलग-अलग प्रकार से बचाता है जिसे एक से दूसरे में परिवर्तित नहीं किया जा सकता है। इस प्रकार, उपरोक्त जावा में एक संकलन त्रुटि है।
अब इस व्याख्या नहीं करता है तुम क्यों नहीं स्पष्ट रूप से प्रकार एक boolean
डाली एक int
कर सकते हैं। लेकिन मुझे लगता है कि निम्नलिखित को देख कर समझा जा सकता है:
आप शायद ही कभी ऐसा करने की जरूरत वास्तविक जावा कार्यक्रमों में।
संख्या < -> बूलियन कास्टिंग अन्य प्रकार के कामों के तरीके से जेल नहीं करेगा। विशेष रूप से, अन्य प्रकार के लिए अप-कास्ट और डाउन-कास्ट होते हैं, और जावा में को स्पष्ट प्रकार कास्ट की आवश्यकता नहीं होती है।
आप संख्याओं और स्ट्रिंग के बीच या अन्य वस्तुओं के तारों के बीच टाइपकास्ट नहीं कर सकते हैं। ये रूपांतरण हैं, टाइप नहीं करते हैं। और int
< ->boolean
भी है।
1 - मैं यहाँ (जानबूझ कर) मेरी शब्दावली के साथ खराब किया जा रहा हूँ। सही जावा शब्दावली "चौड़ा" और "संकीर्ण" है। रूपांतरणों को संक्षिप्त करने के लिए अक्षर के लिए सीमित अपवाद के साथ एक स्पष्ट प्रकार का कलाकार होना आवश्यक है। रूपांतरणों को चौड़ा करने के लिए एक प्रकार कास्ट की आवश्यकता नहीं होती है।
स्रोत
2013-04-29 14:55:38
क्योंकि 'int' 'बूलियन' नहीं है। –
कास्टिंग के लिए नियम क्या होंगे? शून्य झूठा है, और कुछ भी सच है? नकारात्मक संख्याओं को कैसे संभाला जाएगा? क्या आपको गणित करने की अनुमति होगी? –
* "जावा में यह सुविधा क्यों शामिल नहीं है?" * कोई पूछ सकता है कि जावा में ऐसी कई चीजें शामिल नहीं हैं जो एक कोड लाइन में हासिल की जा सकें। मैं कारण के रूप में 'एपीआई bloat' posit होगा। –