JShell একটি কমান্ড-লাইন সরঞ্জাম যা আমাদের জাভা স্টেটমেন্ট (সরল বিবৃতি, যৌগিক বিবৃতি, এমনকি সম্পূর্ণ পদ্ধতি এবং ক্লাস) প্রবেশ করতে দেয়, এটি মূল্যায়ন করে এবং ফলাফল প্রিন্ট করে।
ফরোয়ার্ড ৷ রেফারেন্স কমান্ড যা পদ্ধতি উল্লেখ করে , ভেরিয়েবল , অথবা শ্রেণী যেটি আমরা JShell এ টাইপ করেছি এমন কোনো কোডে বিদ্যমান নেই। JShell-এ ক্রমানুসারে কোড প্রবেশ করানো এবং মূল্যায়ন করা হয়, এইগুলি ফরোয়ার্ড রেফারেন্স সাময়িকভাবে অমীমাংসিত আছে. JShell পদ্ধতিতে ফরোয়ার্ড রেফারেন্স সমর্থন করে দেহ , ফিরুন প্রকার , প্যারামিটার প্রকার , পরিবর্তনশীল প্রকার , এবং এর মধ্যে a শ্রেণী .
নীচের কোড স্নিপেটে, একটি পদ্ধতি তৈরি করা হয়েছে forwardReference() Jshell-এ। পরিবর্তনশীল ঘোষণা না করা পর্যন্ত এই পদ্ধতিটি চালু করা যাবে না। যদি আমরা এই পদ্ধতিতে কল করার চেষ্টা করি তবে এটি একটি সতর্ক বার্তা ছুড়ে দেয়:"পদ্ধতি ফরওয়ার্ড রেফারেন্স() কল করার চেষ্টা করা হয়েছে যা পরিবর্তনশীল notYetDeclared ঘোষিত না হওয়া পর্যন্ত আহ্বান করা যাবে না "
C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> void forwardReference() { ...> System.out.println(notYetDeclared); ...> } | created method forwardReference(), however, it cannot be invoked until variable notYetDeclared is declared jshell> forwardReference() | attempted to call method forwardReference() which cannot be invoked until variable notYetDeclared is declared
নীচের কোড স্নিপেটে, আমরা "NotYetDeclared ঘোষণা করেছি " ভেরিয়েবল যা একটি স্ট্রিং প্রদান করে। অবশেষে, যদি আমরা forwardReference() কল করি JShell-এ, তারপর এটি প্রিন্ট করে "ভেরিয়েবল ঘোষণা করা হয়েছে" .
jshell> String notYetDeclared = "variable is declared" notYetDeclared ==> "variable is declared" jshell> forwardReference() variable is declared