gpt4 book ai didi

java - 如何避免在 java 8 中使用接口(interface)?

转载 作者:行者123 更新时间:2023-12-01 22:51:12 26 4
gpt4 key购买 nike

我只是想知道是否可以避免在此代码中使用接口(interface)

public interface FunctionT<T,R>  {
R apply(Integer...args);
}
public static FunctionT sum = (params) -> Arrays.asList(params)
.stream()
.reduce(Integer::sum).get();

最佳答案

Java 中 lambda 表达式的类型是一个函数式接口(interface)。这意味着 lambda 必须提供一个目标类型,即函数式接口(interface)。这可以是您的 (FunctionT) 或标准的,例如 java.util.function.Function

换句话来说,Java 中的函数类型是名义的,而不是结构性的。

(此外,您不想在 Optional 上盲目调用 get(),您想使用一种安全方法,例如 orElse( )ifPresent()。否则,您将失去使用 Optional 的所有安全性。)

关于java - 如何避免在 java 8 中使用接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24703757/

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