वरहैंडल एक चर के लिए एक संदर्भ है, और यह विभिन्न पहुंच मोड (जैसे सादा के तहत चरों तक पहुंच प्रदान करता है। पढ़ें/लिखें , अस्थिर पढ़ें/लिखें , और तुलना करें और बदलें ), java.util.concurrent.atomic . द्वारा प्रदान की गई कार्यक्षमता के समान और sun.misc.Unsafe . चर सरणी . हो सकते हैं तत्व, उदाहरण या स्थिर एक कक्षा में फ़ील्ड।
नीचे दिए गए उदाहरण में, हम एक स्थिर वैरिएबल हैंडल बना सकते हैं।
उदाहरण
आयात करें स्थिर इंट [] सरणी =नया इंट [20]; स्थिर अंतिम वरहैंडल फील्ड, ऐरे; स्थिर { प्रयास करें {FIELD =MethodHandles.lookup().in (StaticVarHandleTest.class).findStaticVarHandle (StaticVarHandleTest.class, "फ़ील्ड", Integer.TYPE); ARRAY =MethodHandles.arrayElementVarHandle (इंट []। क्लास); } पकड़ें (अपवाद ई) {नई आंतरिक त्रुटि फेंकें (ई); } } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) अपवाद फेंकता है { int i =(int) FIELD।getVolatile(); System.out.println(i); FIELD.getAndAdd (5); System.out.println (फ़ील्ड); System.out.println(ARRAY.getAndAdd (सरणी, 5, 5)); System.out.println(ARRAY.getAndAdd (सरणी, 5, 5)); }}आउटपुट
0505