Check enum for multiple values
conditional-statements, enums, java
Solution
I ended up writing a method:
public static enum FileType {
CSV, XML, XLS, TXT, FIXED_LENGTH;
// Java < 8
public boolean in(FileType... fileTypes) {
for(FileType fileType : fileTypes) {
if(this == fileType) {
return true;
}
}
return false;
}
// Java 8
public boolean in(FileType... fileTypes) {
return Arrays.stream(fileTypes).anyMatch(fileType -> fileType == this);
}
}
And then:
if(fileType.in(FileType.CSV, FileType.TXT, FileType.FIXED_LENGTH)) {}
Nice and clean!
Problem
I have an enum `FileType` ``` public static enum FileType { CSV, XML, XLS, TXT, FIXED_LENGTH } FileType fileType = FileType.CSV; ``` Is there a better (cleaner) way to check `fileType` for multiple values than the following (like `"myString".matches("a|b|c");`)? ``` if(fileType == FileType.CSV || fileType == FileType.TXT || fileType == FileType.FIXED_LENGTH) {} ```