我只是想写一个功能接口来理解不同的用例。
通过查看我编写的以下代码,我了解可以使用lambda表达式实现不同的实现。除此之外,还有人能展示复杂的实现吗?
是否可以在lambda表达式中使用其他默认方法,即addLikeAnywhere Way
?如果是,在我的例子中如何?
为什么我只有一个抽象方法的接口?在我的界面中只有一个抽象方法的用例是什么?
public class Calculator {
public static void main(String[] args) {
ICalculator i = (int a, int b) -> a + b;
System.out.println(i.add(5, 2));
i = (int a, int b) -> a + b + a;
System.out.println(i.add(5, 2));
}
}
@FunctionalInterface
interface ICalculator {
public int add(int a, int b);
default int addLikeThis(int a, int b) {
return a + b;
}
default int addLikeOtherWay(int a, int b) {
return a + b + a + b;
}
}
为什么我只有一个抽象方法的接口?在我的界面中只有一个抽象方法的用例是什么?
以便于使用lambda表达式,这些表达式是无名函数。Lambda表达式使代码富有表现力并减少混乱。它还使代码更具可读性。这是基于我使用lambda表达式的经验。
“是否可以在lambda表达式中使用默认方法?”对事实上,许多函数接口都包含默认方法。一个接口中只需要一个抽象方法就可以成为函数接口,否则lambda将“未实现”其他接口方法,这是不允许的。但这里是如何应用默认值的。下面的BiFunction
接口是从API源代码sans JavaDoc中提取的。
以下代码之所以有效,是因为binarymoperator
和unarymoperator
extendBiFunction
和Function
。
BinaryOperator<Integer> add = (numb1,numb2)->numb1+numb2;
UnaryOperator<Integer> mul = resultFromAdd->resultFromAdd*20;
BinaryOperator<Integer> addThenMul = (numb1,numb2) ->add.andThen(mul).apply(numb1,numb2);
int result = addThenMul.apply(10,20); // produces (10+20)*20 = 600
以下内容是从JavaAPI源文件中提取的。
@FunctionalInterface
public interface BiFunction<T, U, R> {
R apply(T t, U u);
default <V> BiFunction<T, U, V> andThen(
Function<? super R, ? extends V> after) {
Objects.requireNonNull(after);
return (T t, U u) -> after.apply(apply(t, u));
}
}
在上面的示例代码中,我可以使用BiFunction
本文向大家介绍ThinkPHP实现支付宝接口功能实例,包括了ThinkPHP实现支付宝接口功能实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ThinkPHP实现支付宝接口功能的方法。分享给大家供大家参考。具体分析如下: 最近做系统,需要实现在线支付功能,毫不犹豫,选择的是支付宝的接口支付功能,这里我用的是即时到帐的接口,具体实现的步骤如下: 一、下载支付宝接口包 下载地址:https
本文向大家介绍php接口实现拖拽排序功能,包括了php接口实现拖拽排序功能的使用技巧和注意事项,需要的朋友参考一下 列表拖拽排序是一个很常见的功能,但是后端接口如何处理却是一个令人纠结的问题 如何实现才能达到效率最高呢? 先分析一个场景,假如有一个页面有十条数据,所谓的拖拽就是在这十条数据来来回回的拖,但是每次拖动都会影响到其他数据例如把最后一条拖到最前面,那么后面九条就自动往后移,反之也是,嗯~
本文向大家介绍python3 实现调用串口功能,包括了python3 实现调用串口功能的使用技巧和注意事项,需要的朋友参考一下 python调用串口,写入数据 以上这篇python3 实现调用串口功能就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍Design patterns 使用Java 8功能接口实现Strategy模式,包括了Design patterns 使用Java 8功能接口实现Strategy模式的使用技巧和注意事项,需要的朋友参考一下 示例 本示例的目的是展示如何使用Java 8功能接口实现策略模式。我们将从经典Java中的简单用例代码开始,然后以Java 8方式对其进行重新编码。 我们使用的示例问题是一系列
但这会产生以下错误: 更新 我试图创建一个类,实现,它基本上试图将对象表示为,其中对象可以是任何类型。当前正在使用和操作和方法中的字段,并使用上述方法创建和对象以调用getter和setter方法。我想知道是否可以将这两个单独的方法合并为一个。 可用作到的示例类: 下面是预期的用法:
他能给我建议和解决方案。非常感谢。请帮帮我!
本文向大家介绍java调用微信接口实现网页分享小功能,包括了java调用微信接口实现网页分享小功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java调用微信接口实现网页分享小功能的具体代码,供大家参考,具体内容如下 // 获取access_token *注意* 经过实际开发测试,微信分享不支持跨域请求,因此获取access_token的请求必须从服务器发起,否则无法获取到ac
问题内容: 例如,如果我们具有以下接口: 以下结构: 并实现了接口: 然后在我们的主要功能中,如果我们想测试一下,将无法正常工作: 这确实按预期工作: 我想念什么?:-) 问题答案: 的接收者是一个值,因此您正在更改结构的副本。 更改为