• Lambda 表达式使用


    作用:避免匿名内部类定义过多,使得代码简洁

    • 有函数式接口才能用 Lambda 表达式

    函数式接口:

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

      public interface Runnable{
        public abstract void run();
      }
      
    • 对于函数式接口,我们可以通过 lamda 表达式创建接口对象

    • 推导过程

      package com.thread.lambda;
      
      /**
       * 推到 Lambda 表达式
       */
      public class TestLambda1 {
          //3.静态内部类
          static class Like2 implements ILike {
              @Override
              public void lambda() {
                  System.out.println("Like.Lambda2");
              }
          }
      
          public static void main(String[] args) {
              ILike like = new Like();
              like.lambda();
      
              like = new Like2();
              like.lambda();
      
              //4.局部内部类
              class Like3 implements ILike {
                  @Override
                  public void lambda() {
                      System.out.println("Like.Lambda3");
                  }
              }
              like = new Like3();
              like.lambda();
      
              //5.匿名内部类,没有类名称,必须借助接口或父类
              like = new ILike() {
                  @Override
                  public void lambda() {
                      System.out.println("Like.Lambda4");
                  }
              };
              like.lambda();
      
              //6.jdk1.8lambda 表达式 简化
              like = () -> {
                  System.out.println("Like.Lambda5");
              };
              /**
               * 总结:
               * 简化 ,仅仅只能在一行代码时简化,多行则需要代码块包裹
               * 必须是函数式接口,接口只能只能有一个方法才可使用
               * 多参数也可以去掉参数类型
               * (a,b)->{,}
               */
      
              like =()-> System.out.println("Like.Lambda5");
              like.lambda();
          }
      }
      
      //1.定义一个函数接口
      interface ILike {
          void lambda();
      }
      
      //2.实现类
      class Like implements ILike {
          @Override
          public void lambda() {
              System.out.println("Like.Lambda1");
          }
      }
      

    悲观者正确,乐观者成功
  • 相关阅读:
    2017 业余程序员的回顾
    而立将近,可有不惑
    谈谈转行
    吃干抹净提上裤子就甩
    Autosizer应用程序窗口控制工具
    AutoCAD2007专业版
    Revit中如何添加水平仰视平面视图
    Revit中绘制带坡度管道
    Revit自定义快递访问工具栏
    Revit利用对正工具快速修改风管对齐方式
  • 原文地址:https://www.cnblogs.com/freebule/p/14238696.html
Copyright © 2020-2023  润新知