您当前的位置: 首页 >  星拱北辰 Java

【Java】函数式接口与Lambda表达式

星拱北辰 发布时间:2020-02-28 00:40:42 ,浏览量:1

函数式接口——@FunctionalInterface

Code

@FunctionalInterface
interface IService {
    void say(String message);
}

public class FunctionalInterfaceTest {
    public static void main(String[] args) {
        IService serviceObj = message -> System.out.println("Hello, " + message);
        serviceObj.say("Sam");
    }
}

输出结果

Hello, Sam

Java8前已有的函数式接口

  • java.lang.Runnable
  • java.util.concurrent.Callable
  • java.security.PrivilegedAction
  • java.util.Comparator
  • java.io.FileFilter
  • java.nio.file.PathMatcher
  • java.lang.reflect.InvocationHandler
  • java.beans.PropertyChangeListener
  • java.awt.event.ActionListener
  • javax.swing.event.ChangeListener

Java8新增的package→java.util.function

内含43个函数式接口,如下:

InterfaceDescription
BiConsumer代表了一个接受两个输入参数的操作,并且不返回任何结果
BiFunction代表了一个接受两个输入参数的方法,并且返回一个结果
BinaryOperator代表了一个作用于于两个同类型操作符的操作,并且返回了操作符同类型的结果
BiPredicate代表了一个两个参数的boolean值方法
BooleanSupplier代表了boolean值结果的提供方
Consumer代表了接受一个输入参数并且无返回的操作
DoubleBinaryOperator代表了作用于两个double值操作符的操作,并且返回了一个double值的结果
DoubleConsumer代表一个接受double值参数的操作,并且不返回结果
DoubleFunction代表接受一个double值参数的方法,并且返回结果
DoublePredicate代表一个拥有double值参数的boolean值方法
DoubleSupplier代表一个double值结构的提供方
DoubleToIntFunction接受一个double类型输入,返回一个int类型结果
DoubleToLongFunction接受一个double类型输入,返回一个long类型结果
DoubleUnaryOperator接受一个参数同为类型double,返回值类型也为double
Function接受一个输入参数,返回一个结果
IntBinaryOperator接受两个参数同为类型int,返回值类型也为int
IntConsumer接受一个int类型的输入参数,无返回值
IntFunction接受一个int类型输入参数,返回一个结果
IntPredicate接受一个int输入参数,返回一个布尔值的结果
IntSupplier无参数,返回一个int类型结果
IntToDoubleFunction接受一个int类型输入,返回一个double类型结果
IntToLongFunction接受一个int类型输入,返回一个long类型结果
IntUnaryOperator接受一个参数同为类型int,返回值类型也为int
LongBinaryOperator接受两个参数同为类型long,返回值类型也为long
LongConsumer接受一个long类型的输入参数,无返回值
LongFunction接受一个long类型输入参数,返回一个结果
LongPredicateR接受一个long输入参数,返回一个布尔值类型结果
LongSupplier无参数,返回一个结果long类型的值
LongToDoubleFunction接受一个long类型输入,返回一个double类型结果
LongToIntFunction接受一个long类型输入,返回一个int类型结果
LongUnaryOperator接受一个参数同为类型long,返回值类型也为long
ObjDoubleConsumer接受一个object类型和一个double类型的输入参数,无返回值
ObjIntConsumer接受一个object类型和一个int类型的输入参数,无返回值
ObjLongConsumer接受一个object类型和一个long类型的输入参数,无返回值
Predicate接受一个输入参数,返回一个布尔值结果
Supplier无参数,返回一个结果
ToDoubleBiFunction接受两个输入参数,返回一个double类型结果
ToDoubleFunction接受一个输入参数,返回一个double类型结果
ToIntBiFunction接受两个输入参数,返回一个int类型结果
ToIntFunction接受一个输入参数,返回一个int类型结果
ToLongBiFunction接受两个输入参数,返回一个long类型结果
ToLongFunction接受一个输入参数,返回一个long类型结果
UnaryOperator接受一个参数为类型T,返回值类型也为T
关注
打赏
查看更多评论

星拱北辰

暂无认证

  • 1浏览

    0关注

    1198博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录