我有一个列表,它有多个对象存在。对于每个对象,我们必须找到一些与Enum值比较的字符串我们如何得到特定对象的列表
public enum ObjectType {
CONTACT("Contact"),
BANK_DETAILS("Bank-Details"),
EMPLOYMENT("Employment"),
PRODUCT("Product"),
INCOME_DETAIL("Income-Details");
ObjectType(String values) { this.values = values; }
public String getValues() { return values; }
private String values; }
我正在使用以下方法
List listOutput = errorsList.stream().
filter(e -> e.getObjType().contains(String.valueOf(ObjectType.values())))
.collect(Collectors.toList());
但它存在return 0
值
答案 0 :(得分:0)
试试这个(为枚举添加检查方法):
public enum ObjectType {
CONTACT("Contact"),
BANK_DETAILS("Bank-Details"),
EMPLOYMENT("Employment"),
PRODUCT("Product"),
INCOME_DETAIL("Income-Details");
private String values;
ObjectType(String values) {
this.values = values;
}
public String getValues() {
return values;
}
public static boolean isValueExists(String test) {
for (ObjectType o : ObjectType.values()) {
if (o.getValues().equals(test)) {
return true;
}
}
return false;
}
}
然后使用它:
List listOutput = errorsList.stream().filter(e -> ObjectType.isValueExists(e.getObjType())).collect(Collectors.toList());