【发布时间】:2018-09-15 16:18:22
【问题描述】:
使用 Java Streams,我想返回匹配的枚举值或抛出异常。枚举值是具有不同长度的对象数组。
对于内部过滤,使用for 循环我已经实现了所需的行为,但是我怎样才能在那里使用流呢?
public enum Person {
cat1("abc"),
cat2("def", "gh1"),
private String[] dummy;
Person(String... dummy) {
this.dummy = dummy;
}
public static Person byVal(String val) {
return Person.stream()
.filter(x -> {
here----- for(String s1 : x.dummy) {
if(s1.equalsIgnoreCase(val)) {
return true;
}
}
return false;
})
.findFirst().
orElseThrow(() -> new IllegalArgumentException("illegal value"));
}
public static Stream<Person> stream() {
return Stream.of(values());
}
}
【问题讨论】:
标签: java performance stream java-stream