@FunctionalInterface 注解 标识是一个函数式接口 1、该注解只能标记在"有且仅有一个抽象方法"的接口上。 2、JDK8接口中的静态方法和默认方法,都不算是抽象方法。 3、接口默认继承java.lang.Object,所以如果接口显示声明覆盖了Object中方法,那么也不算抽象方法。 4、该注解不是必须的,如果一个接口
publicclassTestFunctionInterface{ publicstaticvoidtestFun(MyFunctionInterfacemyFunctionInterface) { myFunctionInterface.method(); } publicstaticvoidmain(String[]args) { testFun(newMyFunctionInterfaceImpl()); } } 1. 2. 3. 4. 5. 6. 7. 8. 9. (2)内名内部类 testFun(newMyFunctionInterface() ...
*/publicabstractvoidmethod();}publicclassDemo{//定义一个方法,参数使用函数式接口MyFunctionalInterfacepublicstaticvoidshow(MyFunctionalInterface myInter){myInter.method();}publicstaticvoidmain(String[]args){//调用show方法,方法的参数是一个接口,所以可以传递接口的实现类对象show(newMyFunctionalInterfaceImpl()...
除了Supplie以外,Java8中还提供了BooleanSupplier, IntSupplier, LongSupplier, DoubleSupplier。以LongSupplier为例 @FunctionalInterfacepublicinterfaceLongSupplier{/** * Gets a result. * *@returna result */longgetAsLong(); } 通过源码我们可以看到,LongSupplier相当于是一个指定了返回参数类型的Supplier。建议这...
}publicstaticvoidmain(String[] args){//调用show方法,方法的参数是一个接口,所以可以传递接口的实现类对象show(newMyFunctionalInterfaceImpl());//调用show方法,方法的参数是一个接口,所以我们可以传递接口的匿名内部类show(newMyFunctionalInterface() {@Overridepublicvoidmethod(){ ...
@FunctionalInterface 函数式接口:有且只有一个抽象方法的接口,称之为函数式接口 @FunctionalInterface注解作用:可以检测接口是否是一个函数式接口 是:编译成功 否:编译失败(接口中没有抽象方法或者抽象方法的个数多于1个) 代码案例@FunctionalInterface @FunctionalInterfacepublicinterfaceMyFunctionalInterface{/** ...
Java8中的函数式接口详解(Supplier、Consumer、Predicate、Function),@toc@FunctionalInterface函数式接口:有且只有一个抽象方法的接口,称之为函数式接口@FunctionalInterface注解作用:可以检测接口是否是一个函数式接口是:编译成功否:编译失败(接口中没有抽象方法或者抽
*/@FunctionalInterfacepublicinterfaceSupplier<T> {/** * Gets a result. * *@returna result */Tget(); } AI代码助手复制代码 supplier接口只有一个抽象方法get(),通过get方法产生一个T类型实例。 实例: packageme.yanand;importjava.util.function.Supplier;publicclassTestSupplier{publicstaticvoidmain(String...
package java.util.function; /** * Represents a supplier of results. * * There is no requirement that a new or distinct result be returned each * time the supplier is invoked. * * This is afunctional interface * whose functional method is {@link #get()}. ...
这个类在java.util包下面,since 1.8也表示在JDK8以后才有这个玩意儿。Functional Interface也表示他只有一个抽象方法等待实现,可以用Lambda表达式——这个方法就是apply。 入参和出参类型,由我们用泛型动态指定。apply的具体逻辑就相当于是入参转化为出参的具体逻辑。也就相当于是y = f(x)这个里面的,映射法则f。具...