जेशेल जावा 9 संस्करण में पेश किया गया एक कमांड-लाइन इंटरेक्टिव टूल है जो प्रोग्रामर को main() घोषित किए बिना सरल स्टेटमेंट, एक्सप्रेशन, वेरिएबल्स, मेथड्स, क्लासेस, इंटरफेस आदि को निष्पादित करने की अनुमति देता है। विधि।
JShell में, कंपाइलर प्रोग्रामर को टाइपकास्टिंग के बारे में चेतावनी देता है त्रुटियों को फेंकने से समस्याएं। हालांकि, अगर प्रोग्रामर को इसकी जानकारी है, तो स्पष्ट कास्टिंग की आवश्यकता होगी। यदि हमें छोटे डेटा मान को एक बड़े प्रकार . में संग्रहीत करने की आवश्यकता है रूपांतरण, फिर अंतर्निहित कास्टिंग की आवश्यकता होगी।
पूर्णांक . दो प्रकार के होते हैं टाइपकास्टिंग :
- शाब्दिक-से-परिवर्तनीय असाइनमेंट: उदाहरण के लिए, संक्षिप्त s1 =123456 , डेटा सीमा से बाहर है। इसे संकलन-समय . पर जाना जाता है , और संकलक एक त्रुटि को चिह्नित करता है।
- वेरिएबल-टू-वेरिएबल असाइनमेंट: उदाहरण के लिए, s1 =i1 . उस स्तर पर int में संग्रहीत मान:4567, जो कि छोटे प्रकार की सीमा के भीतर है, और संकलक कोई त्रुटि नहीं फेंकता है। इसे एक स्पष्ट कास्टिंग के साथ पूर्व-खाली किया जा सकता है s1 =(लघु) i1 ।
नीचे दिए गए कोड स्निपेट में, हम निहित और स्पष्ट दोनों प्रकार के रूपांतरणों को लागू कर सकते हैं।
C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> byte b = 128; | Error: | incompatible types: possible lossy conversion from int to byte | byte b = 128; | ^-^ jshell> short s = 123456; | Error: | incompatible types: possible lossy conversion from int to short | short s = 123456; | ^----^ jshell> short s1 = 3456 s1 ==> 3456 jshell> int i1 = 4567; i1 ==> 4567 jshell> s1 = i1; | Error: | incompatible types: possible lossy conversion from int to short | s1 = i1; | ^^ jshell> s1 = (short) i1; s1 ==> 4567 jshell> int num = s1; num ==> 4567