gpt4 book ai didi

java - 我们需要 BiFunction 接口(interface)做什么?

转载 作者:行者123 更新时间:2023-12-02 07:52:58 26 4
gpt4 key购买 nike

BiFunction 接口(interface)的定义包含一个方法 apply(T t, U u),它接受两个参数。但是,我不明白这个接口(interface)和方法的用途或目的。我们需要这个接口(interface)做什么?

最佳答案

这个问题的问题在于,不清楚您是否看到 Function 的用途,它有一个方法 apply(T t)

所有函数类型的值(value)在于您可以像数据一样传递代码。回调的一个常见用途是回调,在 Java 8 之前,我们过去必须使用匿名类声明来执行此操作:

ui.onClick(new ClickHandler() {
public void handleAction(Action action) {
// do something in response to a click, using `action`.
}
}

现在使用 lambda,我们可以更简洁地做到这一点:

ui.onClick( action -> { /* do something with action */ });

我们还可以将它们分配给变量:

Consumer clickHandler = action -> { /* do something with action */ };
ui.onClick(clickHandler);

...并执行我们对对象执行的常规操作,例如将它们放入集合中:

Map<String,Consumer> handlers = new HashMap<>();
handlers.put("click", handleAction);

BiFunction 就是带有两个输入参数的函数。让我们使用迄今为止所看到的内容来使用 BiFunctions 做一些有用的事情:

Map<String,BiFunction<Integer,Integer,Integer>> operators = new HashMap<>();
operators.put("+", (a,b) -> a + b);
operators.put("-", (a,b) -> a - b);
operators.put("*", (a,b) -> a * b);

...

// get a, b, op from ui
ui.output(operators.get(operator).apply(a,b));

关于java - 我们需要 BiFunction 接口(interface)做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43873721/

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