JShell জাভা 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