zoukankan      html  css  js  c++  java
  • Lambda表达式

    一--介绍

    Lambda 表达式(lambda expression)是一个匿名函数,即没有函数名的函数。

    二---为什么要使用Lambda表达式

    1)避免匿名内部类定义过多

    2)可以让你的代码看起来很简洁

    3)去掉一堆没有意义的代码,只留下核心的逻辑

    三---理解函数式接口

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

    1 public interface Runnable {
    2     public abstract void run();
    4 }

    那么这个函数式接口如何去创建对象呢?这时候Lambda就出场了。可以通过Lambda表达式来创建该接口的对象。

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

    用Lambda之后只需写核心语句,简化了其它语句。

  • 相关阅读:
    数据卷Volume
    使用 Elastic Stack 分析地理空间数据 (二)
    使用 Elastic Stack 分析地理空间数据 (一)
    如何在 Docker 之上使用 Elastic Stack 和 Kafka 可视化公共交通
    Kubernetes网络模型
    举例:Network Policies
    配置Pod的 /etc/hosts
    k8s上安装安装 Ingress Controller &卸载
    logstash安装插件修改使用的gem源
    示例:Ingress通过互联网访问应用
  • 原文地址:https://www.cnblogs.com/YXBLOGXYY/p/14612216.html
Copyright © 2011-2022 走看看