пытается найти элемент по его постоянному параметру/значению поля (то есть value0/value1/value2) без iterarting; есть ли способ? найден метод утилиты guava, который работает для имени константы enum (т. Е. CONSTANT0/CONSTANT1/CONSTANT2), а не значения параметра/поля для этого имени.Найти, если он присутствует в перечислении без итерации?
import com.google.common.base.Enums;
enum Enum {
CONSTANT0("value0"), CONSTANT1("value1"), CONSTANT2("value2");
private final String value;
Enum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
public class Driver {
public static void main(String[] args) {
// prints when input is value0
for (Enum constant : Enum.values()) {
if (constant.getValue().equalsIgnoreCase(args[0])) {
System.out
.println("vanilla version works with value i.e. java Driver value0"
+ args[0]);
}
}
// prints when input is CONSTANT0
if (Enums.getIfPresent(Enum.class, args[0]).isPresent())
System.out
.println("guava version works with constant i.e. java Driver CONSTANT0"
+ args[0]);
}
}
Попробуйте иметь свой 'Enum' конструктор надстройку себя к «карте». – ajb