gpt4 book ai didi

java - 将java lambda表达式转换为1.6版本

转载 作者:搜寻专家 更新时间:2023-11-01 02:37:27 24 4
gpt4 key购买 nike

我有一个用 java 1.8 编写的代码,我想对其进行转换以使其适用于 1.6。

此代码如下:

private void handleCanNotConnect(Throwable cause) {
isConnected = false;
fireAll(l -> l.connectionFailed(cause));
}

private void fireAll(Consumer<MyListener> action){
action.accept(listener);
}

我应该如何改造它?

问候!

最佳答案

在 lambda 函数之前,我们会实例化匿名类以动态实现接口(interface)。

这是一个接口(interface),因为Consumer<MyListener>不可用:

public interface MyConsumer {
public void accept(MyListener l);
}

然后你可以使用:

private void handleCanNotConnect(final Throwable cause) {
isConnected = false;
fireAll(new MyConsumer() {
@Override
public void accept(MyListener l) {
l.connectionFailed(cause);
}
});
}

private void fireAll(MyConsumer action){
action.accept(listener);
}

请注意 cause标记为 final .

关于java - 将java lambda表达式转换为1.6版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44310920/

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