gpt4 book ai didi

java - 检查多个值的枚举

转载 作者:搜寻专家 更新时间:2023-11-01 01:00:47 24 4
gpt4 key购买 nike

我有一个枚举 FileType

public static enum FileType {
CSV, XML, XLS, TXT, FIXED_LENGTH
}

FileType fileType = FileType.CSV;

是否有比以下方法(如 "myString".matches("a|b|c");)?

if(fileType == FileType.CSV || fileType == FileType.TXT || fileType == FileType.FIXED_LENGTH) {}

最佳答案

选项 1:向您的枚举添加一个 boolean 字段。

public static enum FileType {
CSV(true), XML(false), XLS(false), TXT(true), FIXED_LENGTH(true);

private final boolean interesting;

FileType(boolean interesting) {
this.interesting = interesting;
}
public boolean isInteresting() {
return this.interesting;
}
}

...

if (fileType!=null && fileType.isInteresting()) {
...
}

选项 2:使用 EnumSet .EnumSets 在底层使用位域,因此它们非常快且占用内存少。

Set<FileType> interestingFileTypes = EnumSet.of(FileType.CSV, FileType.TXT, FileType.FIXED_LENGTH);
...
if (interestingFileTypes.contains(fileType)) {
...
}

选项 3:使用 switch,如 kocko 所建议的

关于java - 检查多个值的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27172882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com