gpt4 book ai didi

java - 在 Java 中声明 lambda 数组

转载 作者:搜寻专家 更新时间:2023-10-30 21:15:41 26 4
gpt4 key购买 nike

我想创建一个 lambda 数组。问题是 lambda 可能彼此不同。示例:

private interface I0 {
int interface0(int a, int b);
}

private interface I1 {
int interface1(double d);
}

现在,我如何声明一个可以同时包含 I0 和 I1 的列表?

List<Object> test = Arrays.asList(
(int a, int b) -> a + b,
(double d) -> d * 2
);

显然 Object 不起作用。

最佳答案

您必须首先将 lambda 表达式分配给函数式接口(interface)类型的变量。

否则编译器无法推断这些 lambda 表达式的类型。

I0 i0 = (int a, int b) -> a + b;
I1 i1 = (double d) -> (int) (d * 2);
List<Object> test = Arrays.asList(
i0,
i1
);

也就是说,我不确定将这些 lambda 表达式存储在 List<Object> 中有什么意义? .如果不将它们转换回各个功能接口(interface)类型,您就无法使用它们。

关于java - 在 Java 中声明 lambda 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47650162/

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