【发布时间】:2021-12-08 15:32:55
【问题描述】:
private static final Map<String, BiFunction<String, Player, Player>> SELF_FUNCTION = Map.of
(
"pAtk", BiFunction<Integer, Player, Player> pAtk = (k, v) -> k.getPAtk(v),
"mAtk", BiFunction<Integer, Player, Player> mAtk = (k, v) -> k.getMAtk(v),
);
我无法让这段代码正常工作。我想做一个 for entry 并获取 Key 并计算 BiFunction 给出的统计信息,但我无法让它工作。
【问题讨论】:
-
您不能将变量定义作为参数的一部分。查看您提供的
String参数。在这里你不会在那里写String s = "pAtk",对吧?只需(k, v) -> k.getPAtk(v)就足够了 -
这完全没有意义。在第一行中,您将第一个双功能参数声明为 String,然后在块 zou 中将其声明为 Integer。然后在 lambdas 中(其中 String 或 Integer 被称为 k),你正在调用
k.getPAtk这当然不是 String 或 Integer 的方法,但可能是Player(我们只能猜测)。 -
非常感谢我让它通过“pAtk”工作,L2Character::getPAtk
标签: java lambda functional-interface