gpt4 book ai didi

java - 在 Java 8 中,如何将 lambda 赋值给变量?

转载 作者:IT老高 更新时间:2023-10-28 20:41:34 25 4
gpt4 key购买 nike

只是在使用 Java 8 中的新 lambda 和函数特性,我不知道该怎么做。

例如以下是有效的:

    Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
map.compute("A", (k, v) -> v == null ? 42 : v + 41));

但以下给了我语法错误:

    BiFunction x = (k, v) -> v == null ? 42 : v + 41;
map.compute("A", x);

有什么想法吗?

最佳答案

您忘记了 BiFunction 上的泛型:

public static void main(final String[] args) throws Exception {
final Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
final BiFunction<String, Integer, Integer> remapper = (k, v) -> v == null ? 42 : v + 41;
map.compute("A", remapper);
}

运行:

PS C:\Users\Boris> java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b120)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b62, mixed mode)

关于java - 在 Java 8 中,如何将 lambda 赋值给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920039/

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