我想知道Java 8中最好的方法是使用枚举的所有值.特别是当你需要获取所有值并将其添加到某个地方时,例如,假设我们有以下枚举:
public enum Letter {
A, B, C, D;
}
Run Code Online (Sandbox Code Playgroud)
我当然可以做以下事情:
for (Letter l : Letter.values()) {
foo(l);
}
Run Code Online (Sandbox Code Playgroud)
但是,我还可以在枚举定义中添加以下方法:
public static Stream<Letter> stream() {
return Arrays.stream(Letter.values());
}
Run Code Online (Sandbox Code Playgroud)
然后用以下内容替换上面的for:
Letter.stream().forEach(l -> foo(l));
Run Code Online (Sandbox Code Playgroud)
这种方法是正确的还是在设计或性能方面有问题?而且,为什么enums没有stream()方法?