有一些简单的方法可以从列表中返回映射到我们通过的条件的对象。
例如:
public enum CarType {
TOYOTA,
NISSAN,
UNKNOWN;
public static CarType getByName(String name) {
for (CarType carType : values()) {
if (carType.name().equals(name)) {
return carType;
}
}
return UNKNOWN;
}
}
Java 8下面的方法和我使用过的for循环是否还有其他支持方式。
public static CarType getByName(String name) {
for (CarType carType : values()) {
if (carType.name().equals(name)) {
return carType;
}
}
return UNKNOWN;
}
最佳答案
return Arrays.stream(values())
.filter(carType -> carType.name().equals(name))
.findFirst().orElse(CarType.UNKNOWN);