जावा में, आप एक enum इस प्रकार बना सकते हैं:जावा 6 enums के लिए मूल्य() लागू किया गया है?
public enum Letter {
A, B, C, D, E, F, G;
static {
for(Letter letter : values()) {
// do something with letter
}
}
}
यह सवाल विधि से संबंधित है "() मूल्यों"। विशेष रूप से, यह कैसे कार्यान्वित किया जाता है? आम तौर पर, मैं एफ 3 या CTRL + का उपयोग कर जावा कक्षाओं के लिए स्रोत पर कूद सकता हूं (ग्रहण में भी क्लिक करें (यहां तक कि स्ट्रिंग, कैरेक्टर, इंटीजर और यहां तक कि एनम जैसे वर्गों के लिए)। अन्य enum विधियों के स्रोत को देखना संभव है (उदा।, ValueOf (स्ट्रिंग))।
क्या "मूल्य()" प्रत्येक बार जब इसे लागू किया जाता है तो एक नई सरणी बनाते हैं? यदि मैं इसे स्थानीय चर में निर्दिष्ट करता हूं और फिर तत्वों में से किसी एक को संशोधित करता हूं, तो क्या होता है (स्पष्ट रूप से यह मान() द्वारा लौटाए गए मान को प्रभावित नहीं करेगा, जिसका अर्थ है कि प्रत्येक बार एक नई सरणी आवंटित की जाती है)।
क्या इसके लिए कोड मूल है? या क्या JVM/compiler विशेष रूप से इसका इलाज करता है, केवल मूल्यों से एक नया उदाहरण लौटाता है() जब यह साबित नहीं कर सकता कि इसे संशोधित नहीं किया जाएगा।
कोई सिस्टम नहीं होगा। रैरेकॉपी तेजी से हो? – Gandalf
+1; अतिरिक्त कुडोस यदि आप 'सिंथेटिक' के अर्थ की व्याख्या करेंगे। – wchargin
'मान()' विधि 'क्लोन()' सरणी '$ VALUES' क्यों है? क्यों न सिर्फ इसे वापस लौटें? – RestInPeace