zoukankan      html  css  js  c++  java
  • 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");
          }
      }
      

    悲观者正确,乐观者成功
  • 相关阅读:
    Ajax服务端框架的综合示例
    《Microsoft Sql server 2008 Internals》读书笔记目录索引
    Pro ASP.NET MVC 3 Framework
    C#客户端的异步操作
    在.net中读写config文件的各种方法
    KMP算法分析
    asp.net 4.0 + 模板引擎(NVelocity)CMS
    mvc3
    开源 Asp.net mvc 用户中心开发计划
    JqueryCMS
  • 原文地址:https://www.cnblogs.com/freebule/p/14238696.html
Copyright © 2011-2022 走看看