Get enum by char Java

enums, java

Solution

Renamed `type` to `name` to avoid confusion, but you got the idea.

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;
    }
}

Also, beware that `valueOf` works like this:

Returns the enum constant of the specified enum type with the specified name.

So you'll use that to do `FileType type = FileType.valueOf("FILE"); // Yields the FILE enum`

Problem

I have this simple `enum` in Java ``` public enum FileType { FILE('-'), DIRECTORY('d'), SYMLINK('l'), DEVICE('b'); private char type; FileType(char type) { this.type = type; } } ``` And I would like to create it a way `FileType type = FileType.valueOf('d');`, is it somehow possible?

Original source