2012-07-12 37 views
7

Tôi gặp vấn đề ở đây. Tôi tạo ra SpecialCharacterField.java - một lớp enum sẽ liệt kê một số ký tự đặc biệt.java - Cách thêm ký tự đặc biệt vào enum?

SpecialCharacterField.java

package bp.enumfield; 

public enum SpecialCharacterField { 
    +, #; 
} 

Trong nhật thực của tôi trên dòng: public enum SpecialCharacterField{ có lỗi nó nói: Syntax error, insert "EnumBody" to complete EnumDeclaration

Xin vui lòng giúp. Cảm ơn trước.

+2

Bạn không thể.Hãy xem tại http://www.coderanch.com/t/515142/java/java/Including-sign-Enum – vikiiii

+0

Bạn cũng có thể xem câu trả lời của tôi. Nó khác với hiện tại "Được chấp nhận" một cách quan trọng – Bohemian

Trả lời

9

làm điều gì đó như thế này,

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

Bạn đánh bại tôi bằng mười giây với khá nhiều chính xác cùng một mã tôi đã viết. :-) – Wyzard

+0

@Wyzard :) Bạn viết chính xác mã giống nhau ở đâu? – Lion

+4

@Lion, trong câu trả lời mà tôi đã viết và sau đó bị xóa vì nó là thừa. – Wyzard

5

Các ký tự đó không thể là một phần của số nhận dạng trong ngôn ngữ Java. Lưu ý rằng bản thân JVM không áp đặt các hạn chế như vậy (chỉ ./; và [được ngăn chặn), vì vậy bạn có thể sử dụng các tên như vậy nếu bạn đã viết trực tiếp bytecode. Tuy nhiên điều này thường không phải là một cách tiếp cận mong muốn.

3

enums có thể có các trường và getter giống như các lớp học thông thường.

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

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

    public char getCharacter() { 
     return character; 
    } 
} 

Lưu ý: Tránh trọng toString() - làm như vậy là một chất chống mẫu: toString() là dành cho "chỉ có đôi mắt của con người" - nó không nên dựa vào trong mã.

Các vấn đề liên quan