gpt4 book ai didi

Java方法签名: Stream versus Collection versus var-arg

转载 作者:行者123 更新时间:2023-11-30 02:41:56 24 4
gpt4 key购买 nike

对于 Java 8 Lambda/Closure 的 var-arg 方法签名是否有通用的最佳方法?

在使用单个对象作为参数或对象集合的方法的情况下,我看到三个选项来实现这一点:

 private void optionOneVararg(String... params) { ... }
private void optionTwoCollection(Collection<String> params) { ... }
private void optionThreeStream(Stream<String> params) { ... }

显然是使用 String 类作为示例。

是否有通用有效的“最佳实践”方法?可变参数方法生成了 Java 7 之前最流畅的代码。对于流来说,它感觉很笨拙。

我希望能够在方法内部和调用它的外部使用 lambda 的便利性。另外,我想将包装/粘合代码(例如 Collections.singletonList(element)Arrays.asList(element)) 保持在最低限度,并避免使用 Collection myCollection =stream.collect(...) 后跟 myCollection.stream()

最佳答案

您仍然可以通过调用 Stream.of(String...) 在方法中使用 Stream API 和 lambda。 。在这种情况下,您可以使用可变参数保留签名:

private void optionVarArgs(String... params) {
Stream.of(params)...
...
}

关于Java方法签名: Stream versus Collection versus var-arg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41428402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com