我在Java中有这个简单的enum
public enum FileType {
FILE('-'), DIRECTORY('d'), SYMLINK('l'), DEVICE('b');
private char type;
FileType(char type) {
this.type = type;
}
}
我想以
FileType type = FileType.valueOf('d');
的方式创建它,是否有可能? 最佳答案
为了避免混淆,将type
重命名为name
,但是您明白了。
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;
}
}
另外,请注意
valueOf
的工作方式如下:返回具有指定名称的指定枚举类型的枚举常量。
因此,您将使用它来进行
FileType type = FileType.valueOf("FILE"); // Yields the FILE enum