• Lambda表达式


    理解Function Interface(函数式接口) 是学习Java8 lambda表达式的关键所在。

    函数式接口的定义:

      任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。

    public interface Runnable{
       public abstract void run(); 
     }

    对于函数式接口,我们可以通过lambda表达式来创建该接口的对象。

    代码推导lambda表达式:无参数型

     1 package Thread;
     2 /*
     3 * 从1到5一步步简化
     4 *
     5 * */
     6 public class LambdaTest {
     7 
     8     //3 静态内部类
     9     static class Like2 implements ILike{
    10         @Override
    11         public void lambda() {
    12             System.out.println("I like lambda2");
    13         }
    14     }
    15 
    16     public static void main(String[] args) {
    17         ILike like=new Like();
    18         like.lambda();
    19 
    20         like=new Like2();
    21         like.lambda();
    22 
    23         //4局部内部类
    24         class Like3 implements ILike{
    25 
    26             @Override
    27             public void lambda() {
    28                 System.out.println("I like lambda3");
    29             }
    30         }
    31         like=new Like3();
    32         like.lambda();
    33 
    34         //5 匿名内部类,没有类的名称,必须借助接口或父类
    35         like=new ILike() {
    36             @Override
    37             public void lambda() {
    38                 System.out.println("I like lambda4");
    39             }
    40         };
    41         like.lambda();
    42 
    43         //6 用lambda简化
    44         like=()->{
    45             System.out.println("I like lambda5");
    46         };
    47         like.lambda();
    48 
    49     }
    50 }
    51 
    52 //1,定义一个函数式接口
    53 interface ILike{
    54     void lambda();
    55 }
    56 //2 实现类
    57 class Like implements ILike{
    58     @Override
    59     public void lambda() {
    60         System.out.println("I like lambda");
    61     }
    62 }

     代码推导lambda表达式:有参数型

     1 package Thread;
     2 
     3 public class LambdaTest2 {
     4 
     5     //3 静态内部类
     6     static class MyLove2 implements ILove{
     7 
     8         @Override
     9         public void love(int a) {
    10             System.out.println("I LOVE YOU "+a);
    11         }
    12     }
    13     public static void main(String[] args) {
    14         ILove love=new MyLove();
    15         love.love(520);
    16 
    17         new MyLove2().love(250);
    18         
    19         //4局部内部类
    20         class MyLove3 implements ILove{
    21 
    22             @Override
    23             public void love(int a) {
    24                 System.out.println("I LOVE YOU "+a);
    25             }
    26         }
    27         new MyLove3().love(113);
    28 
    29         //5 匿名内部类,没有类的名称,必须借助接口或父类
    30         love=new ILove(){
    31 
    32             @Override
    33             public void love(int a) {
    34                 System.out.println("I LOVE YOU "+a);
    35             }
    36         };
    37         love.love(3);
    38 
    39         //6 用lambda简化
    40         love=(a)->{
    41             System.out.println("I LOVE YOU "+a);
    42         };
    43         love.love(379);
    44 
    45     }
    46 }
    47 //1,定义一个函数式接口
    48 interface ILove{
    49     void love(int a);
    50 }
    51 //2 实现类
    52 class MyLove implements ILove{
    53     @Override
    54     public void love(int a) {
    55         System.out.println("I LOVE YOU "+a);
    56     }
    57 }
  • 相关阅读:
    PAIP.paip.手机离线ROOT过程总结
    paip.程序设计扫号器跑号器结果分类设计
    PAIP.测试硬盘的成色以及速率
    paip.httpd.conf 是空的.txt
    paip.c#.nett 系统托盘动态图标闪烁图标
    paip.验证码识别反馈法提高识别率
    paip.提升用户体验找回密码的设
    paip.sql2008 客户端软件绿色版V319
    提升用户体验自动邮编提示与验证地址
    PAIP.提升性能---LISTBOX加载30万大数据量终结方案
  • 原文地址:https://www.cnblogs.com/dragon-lan/p/14071584.html
Copyright © 2020-2023  润新知