【发布时间】:2018-07-19 06:45:50
【问题描述】:
我需要根据一些预定义的值(将来可能会增长)来验证字段。因此,为此我创建了一个 Enum 并定义了一个返回允许值流的方法。
public enum EnumDemo {
VERSION("1.0.0","2.0.3");
private List<String> ver;
EnumDemo(String... ver) {
this.ver = Arrays.asList(ver);
}
public List<String> getVer() {
return ver;
}
public static Stream<EnumDemo> stream() {
return Arrays.stream(EnumDemo.values());
}
}
现在我需要根据这个枚举中定义的值来验证一个字段。
我正在使用:
Optional<EnumDemo> ab = EnumDemo.stream()
.map(l -> {l.getVer().stream()
.filter(c -> c.equals("2.0.3"))
.findFirst();})
.findFirst();
System.out.println(ab.get().getVer());
但它给了我编译错误。任何帮助将不胜感激。
编辑:
编译错误:
The method map(Function<? super EnumDemo,? extends R>) in the type Stream<EnumDemo> is not applicable for the arguments ((<no type> l) -> {})
【问题讨论】:
-
你能提供给我们错误信息吗?
-
删除
{;},或在{之后添加return。 -
如果你能显示实际错误而不是仅仅说“有一个错误”会有所帮助。
-
@Jai -- 没用 :(
-
编译错误抱歉没有粘贴
标签: java enums java-8 java-stream