我想找到列表中的元素,并与Enum值进行比较

时间:2017-09-21 11:35:03

标签: spring java-8

我有一个列表,它有多个对象存在。对于每个对象,我们必须找到一些与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

1 个答案:

答案 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());