我是Java的新手,有一个名为listAnimal
的对象列表,下面是一个示例:
[Animal{name='Atlantic', type='Actinopterygii', scienName='sturio', country='Global', endangerment='Critical Endangerment', popTrend='Decreasing'}, Animal{name='eel', type='Actinopterygii', scienName='Anguilla anguilla', country='Europe', endangerment='Critical Endangerment', popTrend='Decreasing'},
我有一些我想使用的枚举类
public enum LevelOfEndangerment {
/**
* an enum to give values to levels of endangerment
*/
EXTINCT(8), NEAR_EXTINCT(7), CRITICAL_ENDANGERMENT(6), ENDANGERED(5), SOMEWHAT_VULNERABLE(4), NEAR_VULNERABLE(3),
NON_CONCERN(2), DATA_DEFICIENT(1), NOT_EVALUATED(0);
private int value;
LevelOfVulnerability (int aValue) {
this.value = aValue;
}
public int getValue () {
return value;
}
我正在努力思考如何遍历listAnimal
并检查动物对象详细信息中的濒危值,例如“严重危急”,并使用枚举根据其aValue返回值6。 >
非常感谢
答案 0 :(得分:0)
如果您只有一个Animal
,则可以将endangerment
字符串转换为ENUM
并获取值
String eng = animal.getEndargement();
LevelOfEndangerment engVal = LevelOfEndangerment.valueOf(eng.replace(" ","_").toUpperCase());
Integer value = engVal.getValue();
如果您有Animal
的列表,则可以流式传输并获取值
List<Integer> values = listAnimal.stream()
.map(an-> LevelOfEndangerment.valueOf(an.getEndargement().replace(" ","_").toUpperCase())
.map(LevelOfEndangerment::getValue)
.collect(Collectors.toList());