2012-03-21 11 views
20

से अनुपलब्ध है यह शायद एक बेवकूफ सवाल है, लेकिन मैं विधि enum.valueOf(String name) का उपयोग कर रहा हूं। वहां कोई समस्या नहीं है, सिवाय इसके कि जब मैं इस विधि के बारे में और जानने के लिए जावाडोक की जांच कर रहा था, तो मुझे यह नहीं मिला। valueOf(Class<T> enumType, String name) के लिए javadoc है लेकिन enum.valueOf(String name) के लिए कोई भी नहीं (जो सुझाव देगा कि इस हस्ताक्षर के साथ एक विधि मौजूद नहीं है - लेकिन स्पष्ट रूप से यह करता है)।enum.valueOf (स्ट्रिंग नाम) Javadoc 1.5 और 1.6

क्या मुझे यहां कुछ याद आ रहा है, या यह एपीआई के लिए जावाडोक में एक निरीक्षण है?

धन्यवाद

उत्तर

19

कोई विधि Enum.valueOf (स्ट्रिंग) हालांकि, हर enum संकलक द्वारा उत्पन्न एक values() और valueOf(String) विधि है और इन प्रलेखित है। वे स्थिर तरीके हैं और इस प्रकार एक सुपर क्लास या इंटरफ़ेस में ओवरराइड या परिभाषित नहीं किया जा सकता है।

Enum e = Enum.valueOf(""); // this doesn't compile 

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.State.html#values%28%29

http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.State.html#values%28%29

इसकी जावा 5.0, 6 या 7

में एक ही जावा 5.0 http://docs.oracle.com/javase/specs/jls/se5.0/html/classes.html#8.9 (मानों की खोज) के लिए जावा 7 http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.9.2 लिए @kapep द्वारा प्रदान की

+1

http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.9.2 – Kapep

+1

@kapep संदर्भ के लिए धन्यवाद। मुझे जावा 5.0 –

+3

बीटीडब्ल्यू के लिए कोई नहीं मिला - जब मैंने enum.valueOf (स्ट्रिंग नाम) लिखा, तो मैं एक वास्तविक enum के लिए शॉर्टकट के रूप में "enum" का उपयोग कर रहा था। इस ठोस मामले में, enum वर्ग स्रोत मीडिया था ("हार्नेसिंग हाइबरनेट" में एक अभ्यास से) यह अभी भी मेरे लिए अजीब लगता है कि यह विधि Enum के लिए जावाडोक में दिखाई नहीं दे रही है। –