Java 将枚举值添加到observableArrayList.with lambdas

Java 将枚举值添加到observableArrayList.with lambdas,java,lambda,enums,Java,Lambda,Enums,我正在用Java编程,希望将枚举的所有值添加到FXCollections.observableArrayList中,该列表将用于填充组合框。 它适用于以下代码: for(OutputType t : OutputType.values()) { outputTypes.add(t.toString()); } 使用lambdas的单行程序如何做到这一点?好吧,我想出来了。问题是OutputType.values()返回一个数组。 Arrays.stream(OutputType.value

我正在用Java编程,希望将枚举的所有值添加到
FXCollections.observableArrayList
中,该列表将用于填充组合框。
它适用于以下代码:

for(OutputType t : OutputType.values()) {
  outputTypes.add(t.toString());
}

使用lambdas的单行程序如何做到这一点?

好吧,我想出来了。问题是
OutputType.values()
返回一个数组。
Arrays.stream(OutputType.values()).forEach(o -> outputTypes.add(o.toString()));
因此,使用
Arrays.asList()
我可以使用
.forEach()


为什么只有一艘班轮?你的代码是可读的,不要破坏它。所以你更喜欢它而不是下面的一行代码?如果我已经写了它,我就不会浪费时间尝试一行代码。是的,我明白,只是想试试lambdas,因为我没有太多使用它们,而且有三种情况下它们要短得多。我明白,但是,你应该考虑到比行数(性能、可读性等)还要多的东西。谢谢,甚至可以将转换保存到列表中。@ PABI:在这方面,实际上没有太大的不同,如<代码>数组。AsListTy[/]代码只返回数组中的一个瘦包装器(<代码>数组。这与
Arrays.stream(Object[])
的情况类似。原来您的原始代码在这方面是最好的,因为没有创建额外的对象请注意命名约定我缺少哪种约定?变量/参数名称应该在
camelCase
中,而不是
PascalCase
Arrays.asList(OutputType.values()).forEach( OutputType -> outputTypes.add(OutputType.toString()));