2012-07-12 8 views
7

मुझे यहाँ एक समस्या है। मैंने SpecialCharacterField.java बनाया - एक एनम क्लास जो कुछ विशेष पात्रों को सूचीबद्ध करेगी।जावा - enum में विशेष चरित्र कैसे जोड़ें?

SpecialCharacterField.java

package bp.enumfield; 

public enum SpecialCharacterField { 
    +, #; 
} 

लाइन पर मेरी ग्रहण में: Syntax error, insert "EnumBody" to complete EnumDeclaration

कृपया मदद: public enum SpecialCharacterField{ उसमें कोई त्रुटि यह कहता है। अग्रिम में धन्यवाद।

+2

आप नहीं कर सकते हैं। इस पर एक नज़र डालें http://www.coderanch.com/t/515142/java/java/Including-ign-Enum – vikiiii

+0

आप मेरा उत्तर भी देखना चाहेंगे। यह वर्तमान में "स्वीकृत" से एक महत्वपूर्ण तरीके से अलग है – Bohemian

उत्तर

9

कुछ इस तरह करते हैं,

public enum SpecialCharacterField{ 
    PLUS("+"), 
    HASH("#"); 

    private String value; 
    private SpecialCharacterField(String value) 
    { 
     this.value = value; 
    } 

    public String toString() 
    { 
     return this.value; //This will return , # or + 
    } 
} 
+0

आपने मुझे दस सेकंड तक हराया है, जैसा कि मैंने लिखा था। :-) – Wyzard

+0

@Wyzard :) आप बिल्कुल वही कोड कहां लिखते थे? – Lion

+4

@Lion, मैंने जो जवाब लिखा था और फिर हटा दिया क्योंकि यह अनावश्यक था। – Wyzard

5

वे वर्ण जावा भाषा में पहचानकर्ताओं के हिस्से नहीं हो सकते हैं। ध्यान दें कि JVM स्वयं ऐसे प्रतिबंधों को लागू नहीं करता है (केवल ./; और [रोका जाता है), इसलिए यदि आप सीधे बाइटकोड लिखते हैं तो आप ऐसे नामों का उपयोग कर सकते हैं। हालांकि यह आमतौर पर एक वांछनीय दृष्टिकोण नहीं है।

3

enums क्षेत्र होते हैं और सिर्फ नियमित कक्षाओं की तरह मनुष्य कर सकते हैं।

public enum SpecialCharacterField{ 
    Plus('+'), 
    Hash('#'); 

    private final char character; 
    private SpecialCharacterField(char character) { 
     this.character = character; 
    } 

    public char getCharacter() { 
     return character; 
    } 
} 

नोट: -: - यह कोड में इस पर भरोसा नहीं किया जाना चाहिए toString() "मानव केवल आँखों के लिए" है बचें अधिभावी toString() ऐसा करने में एक विरोधी पैटर्न है।

संबंधित मुद्दे