小编Rum*_*mal的帖子

Java 8使用枚举的方式

我想知道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()方法?

java enums java-8

57
推荐指数
4
解决办法
3万
查看次数

标签 统计

enums ×1

java ×1

java-8 ×1