我有下面的枚举
serial.DiscardInBuffer
这个工作正常,但我输入像“900”,所以我想得到像 lamborghini 那样的enumConstructorName,我该怎么办呢。
答案 0 :(得分:5)
Optional<Car> car = Arrays.stream(Car.values())
.filter(c -> c.getPrice().equals(input))
.findFirst();
答案 1 :(得分:1)
最有效的方法是拥有一个可以查找的地图。
static final Map<String, Car> priceMap = values().stream()
.collect(Collectors.toMap(c -> c.getPrice(), c -> c));
public static Car lookupPrice(String s) {
return priceMap.get(s);
}
但是,我会在一个字段中存储一个数字,如int或double。
答案 2 :(得分:0)
这将返回枚举的名称:
Car.lamborghini.name();