首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用枚举的Java 8方法

使用枚举的Java 8方法
EN

Stack Overflow用户
提问于 2015-04-28 22:24:05
回答 2查看 30.9K关注 0票数 57

我想知道在Java8中处理枚举的所有值的最好方法是什么。特别是当您需要获取所有值并将其添加到某个位置时,例如,假设我们有以下枚举:

代码语言:javascript
复制
public enum Letter {
 A, B, C, D;
}

我当然可以这样做:

代码语言:javascript
复制
for (Letter l : Letter.values()) {
    foo(l);
}

但是,我也可以将以下方法添加到枚举定义中:

代码语言:javascript
复制
public static Stream<Letter> stream() {
    return Arrays.stream(Letter.values());
}

然后将上面的for替换为:

代码语言:javascript
复制
Letter.stream().forEach(l -> foo(l));

这种方法是可以的,还是在设计或性能上有一些缺陷?此外,为什么枚举没有stream()方法?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29922296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档