相关疑难解决方法(0)

Java Pass方法作为参数

我正在寻找一种通过引用传递方法的方法.我知道Java不会将方法作为参数传递,但是,我想获得一个替代方案.

我被告知接口是将方法作为参数传递的替代方法,但我不明白接口如何通过引用充当方法.如果我理解正确,接口只是一组未定义的抽象方法.我不希望每次都发送需要定义的接口,因为几种不同的方法可以使用相同的参数调用相同的方法.

我想要完成的是类似的事情:

public void setAllComponents(Component[] myComponentArray, Method myMethod) {
    for (Component leaf : myComponentArray) {
        if (leaf instanceof Container) { //recursive call if Container
            Container node = (Container) leaf;
            setAllComponents(node.getComponents(), myMethod);
        } //end if node
        myMethod(leaf);
    } //end looping through components
}
Run Code Online (Sandbox Code Playgroud)

调用如:

setAllComponents(this.getComponents(), changeColor());
setAllComponents(this.getComponents(), changeSize());
Run Code Online (Sandbox Code Playgroud)

java interface

254
推荐指数
10
解决办法
28万
查看次数

在Java 8中,带有2个箭头的lambda是什么意思?

我以前读了几篇Java 8教程.

现在我遇到了以下主题: java支持Currying吗?

在这里,我看到以下代码:

IntFunction<IntUnaryOperator> curriedAdd = a -> b -> a + b;
System.out.println(curriedAdd.apply(1).applyAsInt(12));
Run Code Online (Sandbox Code Playgroud)

我明白这个例子总结了2个元素,但我无法理解构造:

a -> b -> a + b;
Run Code Online (Sandbox Code Playgroud)

根据表达式的左侧部分,该行应实现以下功能:

R apply(int value); 
Run Code Online (Sandbox Code Playgroud)

在此之前,我只用一支箭只遇到了lambdas.

java lambda currying java-8

118
推荐指数
6
解决办法
1万
查看次数

标签 统计

java ×2

currying ×1

interface ×1

java-8 ×1

lambda ×1