zoukankan      html  css  js  c++  java
  • Java学习笔记(9)

    lambda表达式:

    只定义了单个方法的接口,称为单一抽象方法(Single Abstract Method, SAM)接口;由于此接口通过调用,完成某一功能,所以也称为功能接口,此类接口的实例称为功能对象

    lambda表达的作用是相当于一个函数,编译器把lambda表达式编译为一个对象,该对象是一个内部匿名类的实例,此匿名类实现了功能接口,只有一个方法,此方法的参数即为lambda表达式的参数,此方法的方法体即为lambda表达式的方法体

    由上述可以推出如下结论:如果一个方法的参数是功能接口类型,可以用lambda表达式作为参数传给此方法

    所以如果一个方法的接收参数为功能接口类型,可以通过如下三种方式传参数,其中接口上@FunctionInterface注释,表明该接口是一个功能接口

     1 public void Run(){
     2         setAction(new InnerClass());
     3 
     4         setAction(new T1() {
     5             @Override
     6             public void test() {
     7                 System.out.println("匿名类方式");
     8             }
     9         });
    10 
    11         setAction(() -> System.out.println("lambda表达式方式"));
    12     }
    13 
    14     public void setAction(T1 t1) {
    15         t1.test();
    16     }
    17 
    18     class InnerClass implements T1 {
    19         @Override
    20         public void test() {
    21             System.out.println("内部类方式");
    22         }
    23     }
    24 
    25     @FunctionalInterface
    26     interface T1 {
    27         void test();
    28     }
  • 相关阅读:
    itoa
    sprintf用法 [转载]
    atoi 与 itoa的实现
    数组排序总结(冒泡,选择,插入,希尔)
    XML入门精解之文件格式定义(DTD)
    malloc()函数的工作机制 结构体的总结
    字符串指针与字符数组(ZT)
    sprintf函数你了解有多深!
    sprintf
    sql ldr 笔记
  • 原文地址:https://www.cnblogs.com/xclw/p/10558353.html
Copyright © 2011-2022 走看看