সাধারণভাবে, একটি ভেরিয়েবল হ্যান্ডেল সহজভাবে একটি পরিবর্তনশীল রেফারেন্স টাইপ করা হয়. এটি একটি অ্যারে হবে৷ উপাদান, একটি উদাহরণ অথবা স্থির ক্ষেত্র ক্লাসের VarHandle ক্লাস নির্দিষ্ট অবস্থার অধীনে ভেরিয়েবলগুলিতে লিখতে এবং পড়ার অ্যাক্সেস সরবরাহ করতে পারে। এগুলি অপরিবর্তনীয় এবং কোন দৃশ্যমান অবস্থা নেই। উপরন্তু, তাদের উপ-শ্রেণীবদ্ধ করা যাবে না, এবং প্রতিটি VarHandle একটি জেনারিক প্রকার আছে৷ টি , যা এই VarHandle দ্বারা উপস্থাপিত প্রতিটি ভেরিয়েবলের ধরন . VarHandle এর উদ্দেশ্য java.util.concurrent.atomic এর সমতুল্য কল করার জন্য একটি মান নির্ধারণ করা হয় এবং sun.misc.Unsafe ক্ষেত্র এবং অ্যারে উপাদানের উপর ক্রিয়াকলাপ।
নিচের উদাহরণে, আমরা MethodHandle.lookup() ব্যবহার করতে পারি একটি VarHandle তৈরি করার পদ্ধতি উদাহরণ।
উদাহরণ
import java.lang.invoke.VarHandle; import java.lang.invoke.MethodHandles; public class VarHandleInstanceTest { public static void main(String args[]) { try { VarHandle fieldHandle = MethodHandles.lookup().in(Student.class).findVarHandle(Student.class, "studentId", int.class); System.out.println("VarHandle instance created successfully!!!"); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } } } // Stundent class class Student { protected int studentId; private String[] marks; public Student() { studentId = 0 ; marks = new String[] {"75" , "85" , "95"} ; } }
আউটপুট
VarHandle instance created successfully!!!