通过char Java获取枚举

Pet*_*sik 3 java enums

enum用Java 很简单

public enum FileType {

    FILE('-'), DIRECTORY('d'), SYMLINK('l'), DEVICE('b');

    private char type;

    FileType(char type) {
        this.type = type;
    }

}
Run Code Online (Sandbox Code Playgroud)

我想创建一种方式FileType type = FileType.valueOf('d');,是否有可能?

GGr*_*rec 5

改名typename避免混淆,但是您明白了。

public enum FileType 
{
    FILE('-'), DIRECTORY('d'), SYMLINK('l'), DEVICE('b');

    private char name;

    FileType(char name) 
    {
        this.name = name;
    }

    public static FileType getFileTypeForName(final char name)
    {
        for (FileType type : FileType.values())
            if (type.name == name)
                return type;

        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

另外,请注意其valueOf工作原理如下:

返回具有指定名称的指定枚举类型的枚举常量。

所以你会用它来做 FileType type = FileType.valueOf("FILE"); // Yields the FILE enum