Tag: functional programming

使用Java 8 Stream API查找枚举值

假设有一个名为Type的简单枚举,如下所示: enum Type{ X(“S1”), Y(“S2”); private String s; private Type(String s) { this.s = s; } } 使用for-loop的静态方法(假设该方法在enum中定义)可以轻松地找到给定s的正确枚举,例如: private static Type find(String val) { for (Type e : Type.values()) { if (esequals(val)) return e; } throw new IllegalStateException(String.format(“Unsupported type %s.”, val)); } 我认为用Stream API表示的function等价物将是这样的: private static Type find(String val) { return Arrays.stream(Type.values()) .filter(e -> esequals(val)) […]